产品设置唯一的一列没有被主键

问题描述:

我想创建下表:产品设置唯一的一列没有被主键

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中的表名。

+0

有什么关系我添加了表名:) – junior 2014-10-07 14:34:36

函数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) 
)