2012-03-02 71 views
0

我的服務器位於linux centOS上運行的hostgator上。Auto_increment停止創建表的腳本

我只是試圖在我的數據庫中創建一個表,我想出瞭如何讓表創建。雖然當我添加AUTO_INCREMENT設置時,代碼不會執行,並且表不會創建。

爲什麼會這樣,我該如何糾正它?

這裏是我的代碼:

$members2_table = "CREATE TABLE ninja08_codin.members2(
     id INT NOT NULL AUTO_INCREMENT, 
     first_name VARCHAR(40), 
     last_name VARCHAR(40) NOT NULL, 
     email VARCHAR(64) NOT NULL, 
     date_joined TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, 
     cred VARCHAR(10) NOT NULL)"; 
+0

什麼錯誤的'mysql_error()'或任何你使用的MySQL API的等價物告訴你? – 2012-03-02 02:53:20

+0

另外,在創建W/o AUTO_INCREMENT之後,在嘗試重新創建它之前,您做了「DROP TABLE」,對吧? – 2012-03-02 02:54:15

+0

是的,我放棄了將在腳本工作時創建的表格。我沒有得到任何錯誤。當我刷新表的列表時,它根本不會創建表。 – 2012-03-02 02:59:33

回答

2

要使用AUTO_INCREMENT您可能不得不將列指定爲一個主鍵:

$members2_table = "CREATE TABLE ninja08_codin.members2(
     id INT NOT NULL AUTO_INCREMENT, 
     first_name VARCHAR(40), 
     last_name VARCHAR(40) NOT NULL, 
     email VARCHAR(64) NOT NULL, 
     date_joined TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, 
     cred VARCHAR(10) NOT NULL, 
     PRIMARY KEY (id))"; 
1

您的查詢會給錯誤

there can be only one auto column and it must be defines as a key, so add primary key to id field

$members2_table = "CREATE TABLE ninja08_codin.members2(
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    first_name VARCHAR(40), 
    last_name VARCHAR(40) NOT NULL, 
    email VARCHAR(64) NOT NULL, 
    date_joined TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    cred VARCHAR(10) NOT NULL)";