2012-12-03 81 views
1

可能重複:
Best way to avoid duplicate entry into mysql databasemysql如何防止重複進入數據庫

這是我的查詢,添加用戶以及拒絕他們,如果已存在具有相同名稱的用戶在用戶表中:

insert into user values(?, ?, ?, ?) select * from user 
where NOT EXISTS(select * from user where user.username = ?); 
+0

你沒有看到這個:: http://stackoverflow.com/questions/2219786/best- way-to-avoid-duplicate-entry-into-mysql-database –

+0

@Sudhir這就是關閉票的原因。 –

+0

同名或同名用戶名? –

回答

1

只需使用INSERT IGNORE。如果在唯一列中有重複,則不會發生任何情況。

+0

不錯的夥伴..... –

+0

@downvoter你能否留下評論解釋我錯了什麼?這樣我可以修復它。謝謝! –

0

爲什麼不將用戶名定義爲主鍵,如果它應該是唯一的?

1

我想你的意思是相同的用戶名,因爲名稱可以是相同的。

所以儘量使用這個,看看

 INSERT INTO user (column1, column2, column3,...) 
    VALUES (value1, value2, value3,...) 
    WHERE NOT EXISTS(
    SELECT username FROM user) 

,如果你的意思是名字,只是通過用戶名更換名