2011-04-30 60 views
0

我而MySQL的更新我的表字段 '刪除' 遇到錯誤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 
+0

使用像「刪除」這樣的字段名稱實際上不是一個好習慣。如何「刪除」或類似的東西?刪除是SQL中的一個動詞。 – 2011-04-30 21:36:52

回答

1

delete是一個保留字MySQL的。

你需要在反引號包裹的字段名稱:

SET `delete` = ..... 

或者最好使用不同的字段名稱。

+0

但是,@Scobal和@Webs961也是正確的。 – 2011-04-30 21:36:11

+0

謝謝!它確實有效。我從來沒有意識到我一直在使用保留關鍵字。 – World 2011-04-30 21:46:35

0

嘗試:

UPDATE student SET `delete`='yes' 
0

您忘記了UPDATE和SET之間的表名稱。你應該有更新學生SET刪除='是'

此外,你不應該使用保留的關鍵字作爲列名。

+0

我的壞!但是我在執行sql語句時使用了表名 – World 2011-04-30 21:49:11

0

使用`delete`而不是刪除。請勿使用保留字來命名錶和列。您不妨將列重命名爲is_deleted