product将列设置为唯一而不是主键

时间:2014-10-07 14:20:25

标签: sql db2

我想创建下表:

create table product (id bigint not null, product_type varchar(50), product_name varchar(100), available_from TIMESTAMP, available_to TIMESTAMP, primary key (id));

我的桌子的关键是'id'。

在表格中插入时,我想要product_type是唯一的。

如果不将product_type设置为我的表的键

,该如何做到这一点

3 个答案:

答案 0 :(得分:1)

ALTER TABLE <your table name>
 ADD CONSTRAINT unique_product_type UNIQUE(product_type);

我在create table SQL中看不到表名。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

添加一个唯一约束,类似这样(未经测试):

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