sql unique 約束
unique 約束唯一標識資料庫表中的每條記錄。
unique 和 primary key 約束均為列或列集合提供了唯一性的保證。
primary key 擁有自動定義的 unique 約束。
請注意,每個表可以有多個 unique 約束,但是每個表只能有乙個 primary key 約束。
下面的 sql 在 「persons」 表建立時在 「id_p」 列建立 unique 約束:
create table persons
( id_p int not null,
lastname varchar(255) not null,
firstname varchar(255),
address varchar(255),
city varchathctonxsvr(程式設計客棧255),
unique (id_p)
)如果需要命名 unique 約束,以及為多個列定義 unique 約束,請使用下面的 sql 語法:
create table persons
( id_p int not null,
lastname varchar(255) not null,
firstname varchar(255),
address varchar(255),
city varchar(255),
constraint uc_personid unique (id_p,lastname)
)當表已被建立時,如需在 「id_p」 列建立 unique 約束,請使用下列 sql:
alter table persons unique (id_p)
如需命名 unique 約束,並定義多個列的 unique 約束,請使用下面的 sql 語法:
alter table persons add constraint uc_personid unique (id_p,lastname)
如需撤銷 unique 約束,請使用下面的 sql:
alter table persons drop index uc_personid
這樣每次插入重覆記錄時mysql就會提示duplicate entry value1-value2 for key uni_que,當然你可以在inswww.cppcns.comert的時候加入ignore來忽略掉
現在保證了無重覆記錄後,我們要開始記錄不存在則插入,存在則更新操作
insert into tablename (field1, field2, field3, ...) values ('value1', 'value2','value3', ...) on duplicate key update field1='value1', field2='value2', field3程式設計客棧='value3', ...
這個語句的意思是,插入值,如果沒有該記錄執行
insert into tablename (field1, field2, field3, ...) values ('value1', 'value2','value3', ...)
這一段,如果存在該記錄,那麼執行
update field1='value1', field2='value2', field3='value3', ...
本文標題: mysql使用unique實現資料不重複插入
本文位址:
unique函式的使用
unique的作用是 去掉 容器中相鄰元素的重複元素 一般要求陣列有序 它會把重複的元素新增到容器末尾 所以陣列大小並沒有改變 而返回值是去重之後的尾位址。用法 unique 陣列首位址,陣列尾位址 include include include using namespace std int ma...
MYSQL 唯一索引UNIQUE使用方法詳解
建立唯一索引的目的不是為了提高訪問速度,而只是為了避免資料出現重複。唯一索引可以有多個但索引列的值必須唯一,索引列的值允許有空值。如果能確定某個資料列將只包含彼此各不相同的值,在為這個資料列建立索引的時候就應該使用關鍵字unique 把它定義為乙個唯一索引。建立唯一索的方法 操作表 如下 複製 cr...
使用unique來刪除重複元素
c stl庫中的algorithm庫包含了乙個unique函式可以用來刪除容器中重複的元素,其只能刪除相鄰近的重複元素,所以如果要使容器中的所有元素都去重,則需要事先對元素進行排序,但這會破壞原先元素的排列順序,此時應該使用另一種方法解決。unique 原型 template class forwa...