#mysql #database
#mysql #База данных
Вопрос:
Во время работы с базой данных MySQL я выполнил несколько запросов, которые меня удивили!
Предположим, что небольшая таблица с идентификатором as int
и именем as varchar
и когда я сделал запрос на обновление на основе ID точно так же (используя C #):
MySqlCommand comm = new MySqlCommand("UPDATE database.table SET Name=@name WHERE id=@id", sqlconn);
comm.Parameters.AddWithValue("@name", textbox1.text);
comm.Parameters.AddWithValue("@id", textbox2.text);
comm.ExecuteNonQuery();
sqlconn.Close();
И это действительно работало совершенно правильно, так что не имеет значения, передается ли идентификатор в базу данных как int
или даже как string
, что происходит, может кто-нибудь, пожалуйста, объясните мне?
Ответ №1:
MySQL — это база данных типа «делай то, что я имею в виду», и она автоматически преобразует типы по мере необходимости.
В большинстве случаев это хорошо, это означает, что вам не нужно возиться с приведением, но иногда это может привести к двусмысленности и странным ошибкам, когда он делает что-то без вашего ведома, например, усекает данные молча.
Комментарии:
1. Вау, действительно великолепно! так что не беспокойтесь о преобразовании всех идентификаторов в моем коде из string в int 🙂