我正在尝试将MySQL函数的集合转换为SQL,并且我遇到了UNIQUE KEY
问题的问题:
-- -----------------------------------------------------
-- Table testform
-- -----------------------------------------------------
CREATE TABLE `testform` (
`FormId` INT(11) NOT NULL AUTO_INCREMENT,
`TTId` INT(11) NULL DEFAULT NULL,
`TestName` VARCHAR(100) NULL,
PRIMARY KEY (`FormId`),
UNIQUE KEY `TF_Composite` (`TTId`, `TestName`));
当我尝试在SQLFiddle中测试它时,它给了我错误
关键字' KEY'附近的语法不正确。
我已经尝试过搜索这个,但到目前为止,我所提出的是"唯一约束"。 " Key"之间是否存在差异?和#34;约束"在SQL?如果是这样,我如何在表创建语句中添加它?
答案 0 :(得分:1)
你的语法都搞砸了。请在线查看书籍(MSDN)。
https://msdn.microsoft.com/en-us/library/ms174979.aspx
下面的示例代码在tempdb中创建一个表。重新启动服务时,此表会自动销毁。
-- Just a example, throw away after reboot
USE [tempdb]
GO
-- Create the table
CREATE TABLE DBO.TESTFORM
(
FORM_ID INT IDENTITY(1, 1) NOT NULL ,
TT_ID INT NULL,
TEST_NAME VARCHAR(100) NULL,
CONSTRAINT PK_FORM_ID PRIMARY KEY (FORM_ID),
CONSTRAINT UN_COMPOSIT UNIQUE (TT_ID, TEST_NAME)
);
-- Seventies Band
INSERT INTO TEMPDB.DBO.TESTFORM VALUES (1, 'John');
INSERT INTO TEMPDB.DBO.TESTFORM VALUES (2, 'Paul');
INSERT INTO TEMPDB.DBO.TESTFORM VALUES (3, 'Mary');
GO
-- Show data
SELECT * FROM TEMPDB.DBO.TESTFORM
GO
下图显示了此表中的数据。
答案 1 :(得分:0)
为了更好地了解主要和唯一,您可以参考下面的页面 Primary and Unique Key Creation
答案 2 :(得分:0)
试试这个。
CREATE TABLE testform (
FormId INT(11) NOT NULL AUTO_INCREMENT,
TTId INT(11) NULL DEFAULT NULL,
TestName VARCHAR(100) NULL,
PRIMARY KEY (FormId),
CONSTRAINT TF_Composite UNIQUE (TTId,TestName));