Проблема с обновлением MySQL

#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 .