2016-01-20 183 views
5

由於某種原因,我的sql腳本無法添加主鍵語句。我想知道是否有人可以解釋爲什麼?SQL ALTER TABLE ADD PRIMARY KEY error1064

以下是表格聲明。

CREATE TABLE IF NOT EXISTS `wp_bwg_album` (
    `id` bigint(20) NOT NULL, 
    `name` varchar(255) NOT NULL, 
    `slug` varchar(255) NOT NULL, 
    `description` mediumtext NOT NULL, 
    `preview_image` mediumtext NOT NULL, 
    `random_preview_image` mediumtext NOT NULL, 
    `order` bigint(20) NOT NULL, 
    `author` bigint(20) NOT NULL, 
    `published` tinyint(1) NOT NULL 
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

這裏是它失敗stement -

ALTER TABLE `wp_bwg_album` 
    ADD PRIMARY KEY (`id`); 

也與表是這樣的最後陳述。

ALTER TABLE `wp_bwg_album` 
MODIFY `id` bigint(20) NOT NULL AUTO_INCREMENT; 

我把這個問題搞糊塗了,SQL是從我的活服務器轉儲的。我只是在家更新我的開發服務器。使用MySql工作臺我得到了標準的1064錯誤。

16時58分40秒ADD PRIMARY KEY(id)錯誤代碼:1064你有 您的SQL語法錯誤;檢查對應於你的MySQL 服務器版本使用附近的正確語法「ADD PRIMARY KEY (id)」手冊在1號線0.000秒

任何幫助,將不勝感激。

+1

它正在處理[sqlfiddle](http://sqlfiddle.com/#!9/baf8f) –

+0

感謝您的編輯。 –

+4

'wp_bwg_album'是否爲空表?如果不是,那麼'id'中是否有重複值? – ChrisStillwell

回答

0

試試這個:

ALTER TABLE `wp_bwg_album` 
    ADD CONSTRAINT `pk_wp_bwg_album` PRIMARY KEY (`id`); 

約束名可以是任何人。

+0

那麼幫助,因爲我現在得到錯誤> 17:31:16 \t ALTER TABLE'wp_bwg_album' ADD CONSTRAINT'pk_wp_bwg_album' PRIMARY KEY('id')\t錯誤代碼:1068.多個主鍵定義\t 0.000秒 –

+0

試試這個添加PK創建表查詢 CREATE TABLE表名( ID INT NOT NULL, NAME VARCHAR(20)NOT NULL, PRIMARY KEY(ID) ); – MasoodUrRehman

+1

那麼你以前可能已經聲明瞭一個主鍵。嘗試再次這樣做,並嘗試我的解決方案,如果不行的話,嘗試用主鍵定義創建一個新表。 –