2013-07-26 3 views
-4

Я пытаюсь обновить столбец с именем «Дата» с использованием запроса на обновление следующим образом. UPDATE db1 SET Date = '20130304' WHERE Date = '3/4/2013';Есть ли "Дата" ключевое слово в mysql?

Но обновление не происходит. Является ли «Дата» ключевым словом в MySQL? Если да, то как включить его в запрос, чтобы он обрабатывался как переменная, а не как ключевое слово MySQL.

+0

1. Выполнить это: SELECT COUNT (*) FROM DB1 WHERE [Date] = '3/4/2013' - это скажет вам, если данные соответствуют вашей ИНЕКЕ. Комментарий с результатом. Это может быть связано с типом данных столбца Date. Плохое имя для столбца. – andrewb

+0

Привет, это значение даты уже существует, –

+1

https://docs.google.com/file/d/0B779-pgf8mqDV2JPN1RybnlMRE0/edit?usp=sharing приведенный выше запрос был частью скрипта python, вы можете проверить он, если требуется больше информации –

ответ

3

Дата это ключевое слово в MySQL

UPDATE db1 SET Date = '20130304' WHERE Date = '3/4/2013'; 

должен быть

UPDATE db1 SET `Date` = '20130304' WHERE `Date` = '3/4/2013'; 
+7

Это неправильно. ['MySQL разрешает использование некоторых ключевых слов в качестве некотируемых идентификаторов, потому что многие ранее использовали их. Примеры приведены в следующем списке: ACTION, BIT, DATE, ENUM, NO, TEXT, TIME, TIMESTAMP '] (http://dev.mysql.com/doc/refman/5.0/ru/reserved-words.html). –

-2

использование backtick бежать ключевое слово вместо. точно так же, как вы создали свою таблицу. используя двойные кавычки или одиночные кавычки будут разбирать его в string именно поэтому вы получаете записи о Date

Или

использование приличных имен столбцов

-2

даты зарезервированного слова в базе данных, попытайтесь покрыть ее с кронштейном

UPDATE db1 SET [Date] = '20130304' WHERE [Date] = '3/4/2013';