mysql - 将主 auto_increment 值为零的表导入到 mariadb

标签 mysql sql import export mariadb

我正在尝试将数据库转储导入到我的 mariaDb 10.2.6 数据库中。 这是一个 Magento 2 数据库。

有这个表导入:

# Dump of table store_website
# ------------------------------------------------------------

DROP TABLE IF EXISTS `store_website`;

CREATE TABLE `store_website` (
  `website_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Website Id',
  `code` varchar(32) DEFAULT NULL COMMENT 'Code',
  `name` varchar(64) DEFAULT NULL COMMENT 'Website Name',
  `sort_order` smallint(5) unsigned NOT NULL DEFAULT 0 COMMENT 'Sort Order',
  `default_group_id` smallint(5) unsigned NOT NULL DEFAULT 0 COMMENT 'Default Group Id',
  `is_default` smallint(5) unsigned DEFAULT 0 COMMENT 'Defines Is Website Default',
  PRIMARY KEY (`website_id`),
  UNIQUE KEY `STORE_WEBSITE_CODE` (`code`),
  KEY `STORE_WEBSITE_SORT_ORDER` (`sort_order`),
  KEY `STORE_WEBSITE_DEFAULT_GROUP_ID` (`default_group_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Websites';

LOCK TABLES `store_website` WRITE;
/*!40000 ALTER TABLE `store_website` DISABLE KEYS */;

INSERT INTO `store_website` (`website_id`, `code`, `name`, `sort_order`, `default_group_id`, `is_default`)
VALUES
    (0,'admin','Admin',0,0,0),
    (1,'my_website','MY_WEBSITE',0,1,1);

/*!40000 ALTER TABLE `store_website` ENABLE KEYS */;
UNLOCK TABLES;

这失败了,给我一个重复的键 1 错误。显然,它尝试插入值 0 作为新的增量,该增量本来是 1,但它已经在表中了。 即使设置了这些选项,也会出现此错误:

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

最佳答案

据我所知,InnoDB引擎不支持NO_AUTO_VALUE_ON_ZERO模式。不过 MyISAM 应该支持它。

请注意,不推荐使用零作为 auto_increment 列中的键,因此建议避免使用它。是否可以选择将数据导入 MyISAM 表,尽一切努力将零键更改为正数,然后切换到 InnoDB?

关于mysql - 将主 auto_increment 值为零的表导入到 mariadb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44696254/

相关文章:

php - iOS 推送通知使用 PHP?

java - 从数据库表填充 Java HashMap

android - 无法打开项目项目文件的长度超过 100 个字符的限制

MySQL 正则表达式在哪里

mysql - 如何查询双向好友关系?

mysql - 如何将文件 .mdf 和 .ldf 转换为 mysql 格式

sql - 如何选择带有字符串的列

mysql - 如何通过 ods 从 phpmyadmin 导入 mysql 数据库中的前导零

javascript - 如何为多个导入的模块使用单个命名空间?

javascript - 电子邮件实时检查 PHP 和 Mysql