制作新的主键也有限制
Making a new Primary Key also have constraints
我是 SQL 服务器的新手,运行 遇到了一个看似基本的问题。
基本上我的 table COPY_TYPE
有一个主键 C_NAME
和 C_NAME
上的约束:VT, VCD, DVD
。
我将如何着手写出来?我的错误尝试如下:
create table COPY_TYPE
(
C_NAME char(5) primary key,
constraint PK_C_NAME check ( 'VT', 'VCD', 'DVD')
);
我知道这是错误的,但我还不知道如何开始用这种语言思考。
这里有一个例子供您参考:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT pk_PersonID PRIMARY KEY (P_Id, LastName)
)
create table COPY_TYPE (C_NAME char(5) primary key, constraint PK_C_NAME
check ( C_NAME = 'VT' or C_NAME = 'VCD' or C_NAME = 'DVD'));
你非常接近 - 我倾向于明确命名我的约束,所以我会这样写出来:
CREATE TABLE dbo.COPY_TYPE
(
C_NAME char(5) NOT NULL
CONSTRAINT PK_Copy_Type PRIMARY KEY CLUSTERED
CONSTRAINT CHK_C_NAME CHECK (C_NAME IN ('VT', 'VCD', 'DVD')),
... (other columns to follow) ....
);
我是 SQL 服务器的新手,运行 遇到了一个看似基本的问题。
基本上我的 table COPY_TYPE
有一个主键 C_NAME
和 C_NAME
上的约束:VT, VCD, DVD
。
我将如何着手写出来?我的错误尝试如下:
create table COPY_TYPE
(
C_NAME char(5) primary key,
constraint PK_C_NAME check ( 'VT', 'VCD', 'DVD')
);
我知道这是错误的,但我还不知道如何开始用这种语言思考。
这里有一个例子供您参考:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT pk_PersonID PRIMARY KEY (P_Id, LastName)
)
create table COPY_TYPE (C_NAME char(5) primary key, constraint PK_C_NAME
check ( C_NAME = 'VT' or C_NAME = 'VCD' or C_NAME = 'DVD'));
你非常接近 - 我倾向于明确命名我的约束,所以我会这样写出来:
CREATE TABLE dbo.COPY_TYPE
(
C_NAME char(5) NOT NULL
CONSTRAINT PK_Copy_Type PRIMARY KEY CLUSTERED
CONSTRAINT CHK_C_NAME CHECK (C_NAME IN ('VT', 'VCD', 'DVD')),
... (other columns to follow) ....
);