设置一列唯一但不是主键

问题描述 投票:0回答:3

我有下表:

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
UNIQUE
。如果不为我的桌子设置
product_type
PRIMARY KEY
,我该如何做到这一点。

sql db2
3个回答
3
投票
ALTER TABLE <your table name>
 ADD CONSTRAINT unique_product_type UNIQUE(product_type);

我在你的建表SQL中看不到表名。


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

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)
)
© www.soinside.com 2019 - 2024. All rights reserved.