#mysql #sql
#mysql #sql
Вопрос:
Я сталкиваюсь с ошибкой при обновлении поля моей таблицы ‘delete’ в MySQL
CREATE TABLE IF NOT EXISTS `student` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` text NOT NULL,
`delete` varchar(3) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=29 ;
INSERT INTO `student` (`name`, `delete`) VALUES('newa', 'no')
UPDATE SET delete='yes
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'set delete-'yes'' at line 1
Комментарии:
1. Использование имен полей типа «удалить» на самом деле не является хорошей практикой. Как насчет «удаляемого» или что-то в этом роде? Удалить — это глагол в SQL.
Ответ №1:
delete
это зарезервированное слово в MySQL.
Вам нужно обернуть имя поля в обратные метки:
SET `delete` = .....
или, предпочтительно, используйте другое имя поля.
Комментарии:
1. Спасибо!! это действительно сработало. я никогда не осознавал, что использовал ключевое слово reserved.
Ответ №2:
Попробуйте:
UPDATE student SET `delete`='yes'
Ответ №3:
Вы забыли имя таблицы между UPDATE и SET. У вас должно быть установлено ЗНАЧЕНИЕ UPDATE student ДЛЯ удаления =’yes’
Кроме того, вы не должны использовать зарезервированные ключевые слова в качестве имен столбцов.
Комментарии:
1. виноват! но я использовал имя таблицы при выполнении инструкции sql
Ответ №4:
используйте `удалить` вместо delete. Пожалуйста, не используйте зарезервированные слова для именования таблиц и столбцов. Вы могли бы также переименовать столбец в is_deleted
.