当前位置:首页 » 编程语言 » sql语句unique
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql语句unique

发布时间: 2023-06-28 08:33:36

① 创建唯一索引的 sql语句

sql语句创建唯一索引的方法:
1、在sql server数据库中:
CREATE UNIQUE INDEX AK_UnitMeasure_Name
ON Proction.UnitMeasure (Name);
GO

2、在oracle中床创建
CREATE unique INDEX 索引名 ON 表名 (列名)
TABLESPACE 表空间名;

② SQL unique约束的用法

UNIQUE 约束唯一标识数据库表中的每条记录。
UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。
PRIMARY KEY 拥有自动定义的 UNIQUE 约束。
请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。
独特的SQL制约创建表
下列SQL创建了一个唯一约束的“ P_Id ”一栏时, “人”是创建表:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (P_Id)
)
SQL Server / Oracle / MS Access: CREATE TABLE Persons
(
P_Id int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

③ sql语句建表,其中一列数据的值是唯一的,但允许有多个空值。不是unique约束,unique不允许有多个空值。

假设要实现约束的列名为C1, 所在表名为MyTable

(1)除了SQL SERVER 以外的大型数据库都是允许 UNIQUE约束有多个空值的。

(2)SQL Server 2008中有了一个解决方案,那就是筛选索引。

CREATE UNIQUE NONCLUSTERED INDEX MyTable
ON MyTable(C1)
WHERE C1 is not null
GO

(3)SQL Server 2008以下版两个方案

A、使用触发器在插入和更新时控制
CREATE trigger Mytrigger on MyTable for insert, update as
BEGIN
IF (select max(cnt) from (select count(i.c1)
as cnt from MyTable, inserted i where MyTable.c1=i.c1 group
by i.c1) x) > 1
ROLLBACK TRAN
END

B、 在约束中使用自建函数来实现

创建验证逻辑函数
CREATE FUNCTION [dbo].[fn_CK_MyTable_C1]()
RETURNS BIT
AS
BEGIN
IF(EXISTS(
SELECT 1
FROM MyTable AS a
WHERE (C1 IS NOT NULL) AND EXISTS
(SELECT 1 AS Expr1
FROM MyTable
WHERE (C1 IS NOT NULL) AND (C1 = a.C1) )
))
RETURN 0

RETURN 1
END
GO

在约束中引用函数:

ALTER TABLE test_tb
ADD CONSTRAINT CK_MyTable_C1 CHECK (dbo.fn_CK_MyTable_C1() = 1)
GO

④ 在执行sql语句时报错:ORA-00001: unique constraint是怎么回事

违反了唯一性约束,所以导致插入不正确。

⑤ sql中UNIQUE有用法最好能举个例子!谢谢!!

UNIQUE 约束强制实施列集中值的唯一性。

根据 UNIQUE 约束,表中的任何两行都不能有相同的列值。另外,主键也强制实施唯一性,但主键不允许 NULL 作为一个唯一值。

以下示例强制的限制是,Proct 表的 Name 列必须唯一。
Name nvarchar(100) NOT NULL
UNIQUE NONCLUSTERED

⑥ 创建唯一索引的sql语句是什么

创建唯一索引的sql语句如下:

  • CREATE [UNIQUE|CLUSTERED] INDEX INDEX_NAME ON TABLE_NAME(PROPERTY_NAME)

  • 其中UNIQUE和CLUSTERED为可选项,分别是建立唯一索引和聚簇索引。

  • 具体解释为:
    UNIQUE:表示此索引的每一个索引值只对应唯一的数据。
    CLUSTERED:表示要建立的索引时聚簇索引,即索引项的顺序与表中记录的物理顺序一致的索引组织。