【发布时间】:2017-11-28 19:03:23
【问题描述】:
我正在尝试将数据从 Oracle 表迁移到 MariaDB 表。我有来自 Oracle 表卸载的 csv 文件和一个加载脚本,用于将这些文件加载到相应的 mariadb 表中,这些表是我使用与 Oracle 端相同的表/模式定义创建的。我收到 1062 (230000) Duplicate entry 错误但是我不明白为什么 MySQL/Mariadb 将数据视为唯一的?插入的第一条记录中的值是小写的,而失败的第二条插入中的值是大写的。似乎 mysql 和 mariadb 都将值视为相同,因此我得到主键的重复输入错误。为了显示我的错误,我创建了一个测试表并手动尝试插入 2 行。我已将所有相关信息放在下面,如果有一些解释,我将不胜感激。提前感谢您的帮助。
MariaDB [mytestdb]> create table test1 (id char(15) not null, recnum integer, primary key(id));
MariaDB [mytestdb]> show create table test1\G
*************************** 1. row ***************************
Table: test1
Create Table: CREATE TABLE `test1` (
`id` char(15) NOT NULL,
`recnum` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
MariaDB [mytestdb]> insert into test1 values ('abc123',1);
Query OK, 1 row affected (0.01 sec)
MariaDB [mytestdb]> insert into test1 values ('ABC123',2);
ERROR 1062 (23000): Duplicate entry 'ABC123' for key 'PRIMARY'
谢谢, 桑杰
【问题讨论】: