产品设置唯一的一列没有被主键
问题描述:
我想创建下表:产品设置唯一的一列没有被主键
create table product (id bigint not null, product_type varchar(50), product_name varchar(100), available_from TIMESTAMP, available_to TIMESTAMP, primary key (id));
我的表的关键是“身份证”。
当插入表中时,我想要product_type是唯一的。
如何做,没有设置产品类型主要为我的表
答
ALTER TABLE <your table name>
ADD CONSTRAINT unique_product_type UNIQUE(product_type);
我看不到您的创建表SQL中的表名。
答
函数NEWID()生成一个新的唯一ID。也许你可以在每个插入内容中插入一个触发器,或者使默认值为NEWID()。那么第二个选择似乎好一点:P
CREATE TABLE Test123
(
ID NVARCHAR(200) DEFAULT (NEWID()),
name NVARCHAR(100)
)
INSERT INTO Test123 (name) VALUES ('test')
SELECT * FROM Test123
DROP TABLE Test123
+0
AFAIK NEWID()是一个mssql函数,不管我看不出你的回答与问题 – Lennart 2014-10-08 08:44:04
答
添加唯一约束,这样的事情(未测试):
http://www.w3schools.com/sql/sql_unique.asp
CREATE TABLE Product
(
id bigint NOT NULL,
product_type varchar(50),
product_name varchar(100),
available_from TIMESTAMP,
available_to TIMESTAMP,
primary key (id),
UNIQUE (product_type)
)
有什么关系我添加了表名:) – junior 2014-10-07 14:34:36