2011-01-13 63 views
2

當試圖在我的數據庫中創建這個表,我得到一個錯誤:phpMyAdmin的 - 錯誤#1064

#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 'unsigned NOT NULL default '0', PRIMARY KEY (reminder_id), KEY reminder_id (rem' at line 5

CREATE TABLE reminder_events (
reminder_id bigint(20) unsigned NOT NULL auto_increment, 
reminder_name varchar(255) NOT NULL default '', 
reminder_desc text, 
reminder_date varchar(8) unsigned NOT NULL default '0', 
PRIMARY KEY (reminder_id), 
KEY reminder_id (reminder_id) 
) TYPE=MyISAM; 

有人能看到我在做什麼錯?

回答

2

問題是你試圖定義一個文本字段(varchar)爲無符號,這是隻能應用於數字字段的東西。

即:「reminder_date varchar(8) unsigned NOT NULL default '0',」是沒有意義的。

但是,由於該字段名爲「reminder_date」,我猜你試圖存儲一個日期,在這種情況下,你的真的是想使用MySQL的DATE字段類型。

例如爲:「reminder_date DATE NOT NULL,

此外,如果你打算要在這些領域的搜索,你也應該增加一些指標以加快搜索。所以,如果你想成爲能夠在名稱和日期進行搜索,您可以使用:

CREATE TABLE reminder_events (
reminder_id bigint(20) unsigned NOT NULL auto_increment, 
reminder_name varchar(255) NOT NULL DEFAULT '', 
reminder_desc text, 
reminder_date DATE NOT NULL, 
PRIMARY KEY (reminder_id), 
KEY reminder_id (reminder_id), 
KEY reminder_name (reminder_name), 
KEY reminder_date (reminder_date) 
) TYPE=MyISAM; 
+0

感謝您的。 – 2011-01-13 11:32:27

+0

@恩運動 - 沒問題。 :-) – 2011-01-13 11:34:03

2

只是刪除無符號。

CREATE TABLE reminder_events (
reminder_id bigint(20) unsigned NOT NULL auto_increment, 
reminder_name varchar(255) NOT NULL default '', 
reminder_desc text, 
reminder_date varchar(8) NOT NULL default '0', 
PRIMARY KEY (reminder_id), 
KEY reminder_id (reminder_id) 
) TYPE=MyISAM; 
0

寫的ENGINE代替TYPE

CREATE TABLE reminder_events (
reminder_id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, 
reminder_name VARCHAR(255) NOT NULL DEFAULT '', 
reminder_desc TEXT, 
reminder_date VARCHAR(8) NOT NULL DEFAULT '0', 
PRIMARY KEY (reminder_id), 
KEY reminder_id (reminder_id) 
) ENGINE=MYISAM;