【发布时间】:2020-07-17 21:57:24
【问题描述】:
为了更好地理解而更新了问题,因为我找到了解决方案,所以我一直在寻找:
我的脚本是这样的:
CREATE TABLE [dbo].[MyTable]
(
[Columndata1] [nvarchar] (255) NOT NULL,
[Columndata2] [nvarchar] (max) NOT NULL,
[Columndata3] [nvarchar] (max) NOT NULL,
[ColumndataTime] [datetime] NOT NULL,
CONSTRAINT [PK_MyTable]
PRIMARY KEY CLUSTERED ([Columndata1] ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE [dbo].[MyTable]
ADD CONSTRAINT [DF_MyTable_ColumndataTime] DEFAULT (getutcdate()) FOR [ColumndataTime]
GO
我正在尝试解决重复 PK 的情况,这样如果发生这种情况,它应该忽略请求,如果不创建表。
我想我在最初的问题中并不清楚。
【问题讨论】:
-
dbo 通常是 ms sql server 架构而不是 mysql 架构,你确定你有 m,ysql 吗?
-
该错误仅表示您的插入或更新语句在
Columndata1列中创建了重复值。没有比这更复杂的了。 -
不要插入重复记录。您正在插入或更新记录,以便出现重复项。 PK 存在的一个原因是停止插入重复项,并且您专门创建了一个。
-
你为什么要在
Columndata1上创建一个PK?听起来您可能正在边做边学,这非常好,比这里的很多帖子要好得多。要停止直接问题,请从表中删除 PK。然后想一想:您的数据中是否有任何东西可以唯一标识每一行?如果不是,通常的解决方案是创建一个 INT IDENTITY 列来为您完成。 -
Columndata1中的值是怎么产生的?除非你有特定的逻辑来确保它是独一无二的,否则没有理由认为它是独一无二的
标签: sql sql-server database duplicates