2014-02-16 28 views
1

我在過去的表格中插入了很多行,但是這個特殊的實例一直給我一個錯誤,我找不出原因。我已經重新啓動mysql /嘗試禁用外鍵檢查等,但它仍然失敗。Mysql,在表格中插入一行的問題

這裏是我的INSERT命令:

insert into subreddits_subreddit(name, desc, admin_id) values('firstSubreddit', 
     'This is a test.', 1) 

我的錯誤:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that c 
orresponds to your MySQL server version for the right syntax to use near 'desc, admin_id) 
values('firstSubreddit', 'This is a test.', 1)' at line 1 

這裏是subreddits_subreddit模式。

subreddits_subreddit | CREATE TABLE `subreddits_subreddit` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `name` varchar(50) DEFAULT NULL, 
    `desc` varchar(3000) DEFAULT NULL, 
    `admin_id` int(11) DEFAULT NULL, 
    `created_on` datetime DEFAULT NULL, 
    `updated_on` datetime DEFAULT NULL, 
    `status` smallint(6) DEFAULT NULL, 
    PRIMARY KEY (`id`), 
    UNIQUE KEY `name` (`name`), 
    KEY `user_id` (`admin_id`), 
    CONSTRAINT `subreddits_subreddit_ibfk_1` FOREIGN KEY (`admin_id`) REFERENCES 
      `users_user` (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 | 

這裏是用戶表,它引用:

users_user | CREATE TABLE `users_user` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `username` varchar(80) DEFAULT NULL, 
    `email` varchar(200) DEFAULT NULL, 
    `password` varchar(200) DEFAULT NULL, 
    `created_on` datetime DEFAULT NULL, 
    `status` smallint(6) DEFAULT NULL, 
    `role` smallint(6) DEFAULT NULL, 
    PRIMARY KEY (`id`), 
    UNIQUE KEY `username` (`username`), 
    UNIQUE KEY `email` (`email`) 
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1 | 

的users_user表在其內部具有一排與值1的ID,因此用戶FK參考應該確定。 subreddits_subreddit表是空的(我剛剛做到了)

有關如何操作的任何建議?謝謝。

+1

你沒有張貼錯誤,但我猜這大概是「請檢查手冊中是否在'desc'附近使用了正確的語法,對嗎?如果是這樣,那是因爲'DESC'是一個保留關鍵字,需要使用反引號作爲列名。 –

+0

哇,你是對的,http:// bugs。 mysql.com/bug.php?id=50883 –

+0

這是官方列表[保留字](https://dev.mysql.com/doc/refman/5 0.5/EN /保留-words.html)。 –

回答

4

desc是把反引號魔術引號通過與秩序使用的關鍵字和諸如此類的東西

逃生desc

insert into subreddits_subreddit(name, `desc`, admin_id) 
    values('firstSubreddit', 'This is a test.', 1)