2013-02-11 47 views
0

我有一個保存用戶配置文件信息的數據庫表。 有時當用戶註冊時,它們會被複制到具有相同記錄的額外列中,有時不會。MySQL將列更改爲唯一

所以,我不知道我是否把列上的電子郵件,以確保用戶註冊時不重複。

我想應該是這樣的:

ALTER TABLE users ADD UNIQUE idx_row_unique(email); 

但如果唯一給予錯誤,我怎麼取消?

只是害怕,我改變它後,我不知道如何撤消它。

回答

2

如果有重複的電子郵件,alter table應該失敗。所以你就安全了!

+0

即使像強制數據庫創建2列一樣的功能? – 2013-02-11 20:41:27

+0

因爲我有時候不會爲什麼,我的功能寄存器與用戶保存的2次相同。所以,我想檢查它,並保留一個,並刪除其他。 – 2013-02-11 20:44:41

+1

因此,如果現在您的字段中有兩次相同的郵件,則「alter table」語句將失敗。 未來,如果您有將數據保存在數據庫中的功能,則需要將其更改爲考慮新條件。 – GeorgeVremescu 2013-02-11 21:01:57

0

我會先導出表格結構和數據。這樣,如果你需要把它放回去,你就有SQL。

+0

有沒有辦法導出它?我沒有創建數據庫 – 2013-02-11 20:38:35

+0

如果您有權訪問數據庫的phpMyAdmin,那麼有一個導出功能。我沒有辦法通過代碼來完成它。 – tjfo 2013-02-11 20:46:29

+0

...我正在使用cmd – 2013-02-11 20:50:24