Sql 产品集列唯一,但不作为主键

Sql 产品集列唯一,但不作为主键,sql,db2,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” 在表中插入时,我希望产品类型是唯一的 如何在不设置产品类型的情况下为我的表键入键的情况下执行此操作函数NEWID()生成一个新的唯一

我想创建下表:

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”

在表中插入时,我希望产品类型是唯一的

如何在不设置产品类型的情况下为我的表键入键的情况下执行此操作

函数NEWID()生成一个新的唯一id。也许您可以制作一个触发器,在每次插入时插入该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

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

ALTER表
添加约束唯一性\产品类型唯一性(产品类型);

我在创建表SQL中看不到表名。

我添加了表名:)AFAIK NEWID()是一个mssql函数,不管怎样,我看不到您的答案与问题的关系
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)
)
ALTER TABLE <your table name>
 ADD CONSTRAINT unique_product_type UNIQUE(product_type);