我正在嘗試使用PHP腳本在同一MySQL數據庫中創建2個表:具有主鍵“ user_id”的表“ user”和具有主鍵“ order_id”和來自“ user”的外鍵“ user_id”的表“ order”表(一對多關系)。表用戶創建成功,沒有問題:$sql="CREATE TABLE user( user_id INT UNSIGNED NOT NULL AUTO_INCREMENT, type ENUM('member','admin') NOT NULL, username VARCHAR(30) NOT NULL, email VARCHAR(80) NOT NULL, pass VARBINARY(32) NOT NULL, first_name VARCHAR(40) NOT NULL, last_name VARCHAR(40) NOT NULL, date_expires DATE NOT NULL, date_created TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, date_modified TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (user_id), UNIQUE (username), UNIQUE (email) )ENGINE=InnoDB DEFAULT CHARSET=utf8";但是,我無法創建表順序:$sql="CREATE TABLE order( order_id INT UNSIGNED NOT NULL AUTO_INCREMENT, user_id INT UNSIGNED NOT NULL, transaction_id VARCHAR(19) NOT NULL, payment_status VARCHAR(15) NOT NULL, payment_amount DECIMAL(6,2) UNSIGNED NOT NULL, payment_date_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (order_id), FOREIGN KEY (user_id) REFERENCES user (user_id) )ENGINE=InnoDB DEFAULT CHARSET=utf8";我收到以下錯誤:Error creating table: 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 'order( order_id INT UNSIGNED NOT NULL AUTO_INCREMENT, user_id ' at line 1已經檢查語法,找不到錯誤。您能告訴我出什么問題了嗎?非常感謝。
2 回答

GCT1015
TA貢獻1827條經驗 獲得超4個贊
order是mysql所使用的關鍵字,例如(從tbl_name中按id ASC進行選擇),為了避免使用關鍵字,您必須使用引號``以避免我的sql錯誤
所以你的查詢應該
$sql="CREATE TABLE `order` (
order_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
user_id INT UNSIGNED NOT NULL,
transaction_id VARCHAR(19) NOT NULL,
payment_status VARCHAR(15) NOT NULL,
payment_amount DECIMAL(6,2) UNSIGNED NOT NULL,
payment_date_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (order_id),
FOREIGN KEY (user_id) REFERENCES user (user_id)
)ENGINE=InnoDB DEFAULT CHARSET=utf8";
添加回答
舉報
0/150
提交
取消