關於MySQL資料庫的unique約束,建表時unique

2021-05-28 06:42:20 字數 2078 閱讀 6823

1樓:陽光上的橋

對於你這個例子,一般做法是:

primary key name

這表示本表的name欄位不允許重複,而且也不允許為空,對pass欄位沒有任何限制,這是我們實際需要的。

unique (name)表示限制表中的name欄位不允許重複,這個可以理解,因為一般一個使用者只允許一個密碼。

unique (pass)表示限制表中的pass欄位不允許重複,這意味著不允許兩個使用者使用相同密碼,這個要求不合常理。

unique (name,pass)表示限制表中的name、pass兩個欄位的組合不允許重複,允許單獨的name或者pass欄位重複,其表示的含義是允許一個使用者有多個不同的密碼。

在mysql 中為表的欄位新增唯一性約束的語句怎麼寫

2樓:大野瘦子

1、建表時加上唯一性約束

create table `t_user` (

`id` int(11) not null auto_increment,  -- 自增

`username` varchar(18) not null unique,  -- 唯一性約束

`password` varchar(18) not null,

primary key (`id`)

) engine=innodb auto_increment=1018 default charset=gbk;

2、給已經建好的表加上唯一性約束

alter table `t_user` add unique(`username`);

3樓:軒轅漁民

primary key 主鍵唯一

方法一:

create table `test` (

uname varchar(18) not null default '',

primary key (uname)

) engine=myisam default charset=gbk;

方法二:

create table `test` (

uname varchar(18) not null default '' primary key

) engine=myisam default charset=gbk;

方法三create table `test` (

uname varchar(18) not null default ''

) engine=myisam default charset=gbk;

alter table test add primary key(uname);

4樓:

你用那個圖形介面的軟體,來加就可以了,應該在索引那一欄裡面,自己寫語句修改表,弄不好會出錯的,還麻煩。

1.建表時加上唯一性約束

create table `t_user` (

`id` int(11) not null auto_increment,

`username` varchar(18) not null unique,

`password` varchar(18) not null,

primary key (`id`)

) engine=innodb auto_increment=1018 default charset=gbk;

2.給已經建好的表加上唯一性約束

alter table `t_user` add unique(`username`);

我機器上沒有資料庫,沒驗證這2個sql,不曉得行不行,大概是這樣的吧。

有些人用程式來給資料做約束的,比如約束使用者名稱,

dataset ds = dao.queryfordataset(connname,"select * from t_user where username=? and password=?

",new object,0,0,false);

if(ds.size()==1)else if(ds.size()>1)else

插入使用者之前事先查詢一下這個使用者是否存在,可以用ajax做驗證賬號是否重複的效果,很多**都是這麼幹的

mysql資料庫和access資料庫有什麼區別

mysql和access的區別 mysql特性 很便宜,通常是免費的 網路承載少 查詢 優化 可以簡便的應用程式通過mysql做備份 mysql操縱簡單,易上手,且為各種不同的資料格式提供有彈性的擴充套件介面 odbc access特性 簡單易學,使用方便,開發效率高。mysql對於大多數使用者而言...

mysql把資料庫中的資料複製到另資料庫中的表表結構相同

1。表結構相同的表,且在同一資料庫 如,table1,table2 sql insert into table1 select from table2 完全複製 insert into table1 select distinct from table2 不復制重複紀錄 insert into ta...

如何在MYSQL資料庫中資料庫,如何在MYSQL資料庫中新建一個資料庫

createusertomidentifiedby 密碼 建立使用者 grantallprivilegesondbname.totom 把dbname庫的所有操作許可權都給tomflushprivileges 重新整理快取,生效 在控制檯根目錄下開啟sqlserver企業管理器,新建sqlserve...