mysql兩列唯一索引嗎 mysql多欄位唯一索引

2021-10-17 21:37:49 字數 2135 閱讀 8709

專案中需要用到聯合唯一索引:

例如:有以下需求:每個人每一天只有可能產生一條記錄:處了程式約定之外,資料庫本身也可以設定:

例如:user表中有userid,username兩個字段,如果不希望有2條一模一樣的記錄,需要給user表新增多個欄位的聯合唯一索引:

alter table user add nuique index(user_id,user_name);

例如:alter table user_daily_money_info add unique index agd(user_account_id,game_id,daily_date);

alter table user_daily_money_info add unique key agdkey(user_account_id,game_id,daily_date);

這樣如果向表中新增相同記錄的時候,會返回一下錯誤資訊:

2還有一種情況就是,我們需要為以前的表 建立這個索引,有可能以前的資料中存在重複的記錄 那怎麼辦呢?

alter ignore table user add unique index(user_id,user_name);

它會刪除重複的記錄(別怕,會保留一條),然後建立唯一索引,高效而且人性化.

檢視索引  show index from 資料庫表名

alter table 資料庫add index 索引名稱(資料庫欄位名稱)

primary key(主鍵索引)

alter table `table_name` add primary key ( `column` )

unique(唯一索引)

alter table `table_name` add unique (`column`)

index(普通索引)

mysql>alter table `table_name` add index index_name ( `column` )

fulltext(全文索引)

alter table `table_name` add fulltext ( `column` )

多列索引

alter table `table_name` add index index_name ( `column1`, `column2`, `column3` )

1.普通索引。

這是最基本的索引,它沒有任何限制。它有以下幾種建立方式:

(1)建立索引:create index indexname on

tablename(tablecolumns(length));如果是char,varchar型別,length可以小於字段實際長度;如果是

blob 和 text 型別,必須指定length,下同。

(2)修改表結構:alter tablename add index [indexname] on (tablecolumns(length))

(3)建立表的時候直接指定:create table tablename ( [...], index [indexname] (tablecolumns(length)) ;

2.唯一索引。

它與前面的」普通索引」類似,不同的就是:索引列的值必須唯一,但允許有空值。如果是組合索引,則列值的組合必須唯一。它有以下幾種建立方式:

(1)建立索引:create unique index indexname on tablename(tablecolumns(length))

(2)修改表結構:alter tablename add unique [indexname] on (tablecolumns(length))

(3)建立表的時候直接指定:create table tablename ( [...], unique [indexname] (tablecolumns(length));

3.主鍵索引

它是一種特殊的唯一索引,不允許有空值。一般是在建表的時候同時建立主鍵索引:create table testindex(i_testid int

not null auto_increment,vc_name varchar(16) not null,primary

key(i_testid)); 當然也可以用alter命令。

mysql 唯一索引 mysql建立唯一索引

檢視索引 show index from 資料庫表名 alter table 資料庫add index 索引名稱 資料庫欄位名稱 primary key 主鍵索引 alter table table name add primary key column unique 唯一索引 alter tabl...

mysql 多列唯一 mysql多列指定唯一約束

demo 如何為mysql中的多列指定唯一約束?mysql sql server 拉丁的傳說 2019 06 03 10 25 56 如何為mysql中的多列指定唯一約束?我有張桌子 table votes id,user,email,address,primary key id 現在我想讓列使用者...

MySQL唯一索引

mysql唯一索引 返回首頁 1 唯一索引 unique 單列唯一索引和聯合唯一索引。索引是為了加速查詢。唯一索引是加了約束條件。例如主外來鍵。2 唯一索引的約束 約束不能重複 可以為空 主鍵不能重複 不能為空 3 唯一索引的寫法 create table t1 id int num int,uni...