国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL批量插入遇上唯一索引避免方法

2024-07-24 12:48:52
字體:
來源:轉載
供稿:網友

一、背景

以前使用SQL Server進行表分區的時候就碰到很多關于唯一索引的問題:Step8:SQL Server 當表分區遇上唯一約束,沒想到在MySQL的分區中一樣會遇到這樣的問題:MySQL表分區實戰。

今天我們來了解MySQL唯一索引的一些知識:包括如何創建,如何批量插入,還有一些技巧上SQL;

這些問題的根源在什么地方?有什么共同點?MySQL中也有分區對齊的概念?唯一索引是在很多系統中都會出現的要求,有什么辦法可以避免?它對性能的影響有多大?

二、過程

(一) 導入差異數據,忽略重復數據,IGNORE INTO的使用

在MySQL創建表的時候,我們通常創建一個表的時候是以一個自增ID值作為主鍵,那么MySQL就會以PRIMARY KEY作為聚集索引鍵和主鍵,既然是主鍵,那當然是唯一的了,所以重復執行下面的插入語句會報1062錯誤:如Figure1所示;

復制代碼 代碼如下:

-- 創建測試表
CREATE TABLE `testtable` (
`Id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`UserId` INT(11) DEFAULT NULL,
`UserName` VARCHAR(10) DEFAULT NULL,
`UserType` INT(11) DEFAULT NULL,
PRIMARY KEY (`Id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8;

-- 插入測試數據
INSERT INTO testtable(Id,UserId,UserName,UserType)
VALUES(1,101,'aa',1),(2,102,'bbb',2),(3,103,'ccc',3);

u1_1062

(Figure1:Duplicate entry '1' for key 'PRIMARY')

但是在實際的生產環境中,需求往往是需要在UserId鍵值中設置唯一索引,今天我就以這個作為示例,進行唯一索引的測試:

復制代碼 代碼如下:

-- 創建測試表1
CREATE TABLE `testtable1` (
`Id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`UserId` INT(11) DEFAULT NULL,
`UserName` VARCHAR(10) DEFAULT NULL,
`UserType` INT(11) DEFAULT NULL,
PRIMARY KEY (`Id`),
UNIQUE KEY `IX_UserId` (`UserId`)
) ENGINE=INNODB DEFAULT CHARSET=utf8;

-- 創建測試表2
CREATE TABLE `testtable2` (
`Id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`UserId` INT(11) DEFAULT NULL,
`UserName` VARCHAR(10) DEFAULT NULL,
`UserType` INT(11) DEFAULT NULL,
PRIMARY KEY (`Id`),
UNIQUE KEY `IX_UserId` (`UserId`)
) ENGINE=INNODB DEFAULT CHARSET=utf8;

-- 插入測試數據1
INSERT INTO testtable1(Id,UserId,UserName,UserType)
VALUES(1,101,'aa',1),(2,102,'bbb',2),(3,103,'ccc',3);

-- 插入測試數據2
INSERT INTO testtable2(Id,UserId,UserName,UserType)
VALUES(1,201,'aaa',1),(2,202,'bbb',2),(3,203,'ccc',3),(4,101,'xxxx',5);

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 金华市| 青铜峡市| 松江区| 大新县| 武定县| 社旗县| 奉贤区| 平阳县| 武陟县| 勐海县| 绵阳市| 紫阳县| 连南| 西乡县| 顺昌县| 静乐县| 中西区| 潢川县| 特克斯县| 天门市| 宁南县| 平度市| 基隆市| 重庆市| 延吉市| 自治县| 鲁甸县| 张家川| 威宁| 喜德县| 益阳市| 淮滨县| 贵溪市| 潜江市| 阜南县| 新乐市| 宁明县| 忻州市| 嘉峪关市| 修武县| 沅陵县|