当前位置: 首页 > 知识库问答 >
问题:

键“主”的mysql重复项“1”

卫才哲
2023-03-14

我有上面的错误。

首先,我试图完全理解它的意思。

SELECT DISTINCT TABLE_NAME ,column_name 
FROM INFORMATION_SCHEMA.key_column_usage 
WHERE TABLE_SCHEMA IN ('dosiv_querta');

下面是抛出错误的语句。

INSERT INTO `ps_product_shop` (`id_product`, `id_category_default`, `id_tax_rules_group`, `on_sale`, `online_only`, `ecotax`, `minimal_quantity`, `price`, `wholesale_price`, `unity`, `unit_price_ratio`, `additional_shipping_cost`, `customizable`, `text_fields`, `uploadable_files`, `active`, `redirect_type`, `id_product_redirected`, `available_for_order`, `available_date`, `condition`, `show_price`, `indexed`, `visibility`, `cache_default_attribute`, `advanced_stock_management`, `date_add`, `date_upd`, `pack_stock_type`, `id_shop`) VALUES ('1', '32', '1', '0', '0', '0', '1', '38.99', '0', '', '0', '0', '0', '0', '0', '1', '', '0', '1', '0000-00-00', 'new', '1', '0', 'both', '0', '0', '2015-08-21 00:31:40', '0000-00-00', '3', '1')

共有1个答案

国俊艾
2023-03-14

听起来像是试图在主键列中插入一条值为1的新记录。由于主键需要是唯一的,所以它不会让您插入记录。这里有一个简单的例子再现了这个问题:

mysql> CREATE TABLE TestPrimary (
         ColOne INT NOT NULL,
         ColTwo VARCHAR(255) NULL,
         PRIMARY KEY(ColOne)
       ) ENGINE=InnoDB;
Query OK, 0 rows affected (0.02 sec)

mysql> 
mysql> INSERT INTO TestPrimary (ColOne,ColTwo) VALUES (1,"blah");
Query OK, 1 row affected (0.01 sec)

mysql> 
mysql> INSERT INTO TestPrimary (ColOne,ColTwo) VALUES (1,"boo");
ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'
 类似资料:
  • 当我尝试这个错误消息时,我遇到了一个问题:

  • 问题内容: 我从这样的farmTOanimal表进行联接。有一个类似的farmTotool表 当我在视图中连接表时,得到的结果看起来像这样 现在,我执行GROUP BY FarmID,GROUP_CONCAT(动物)和GROUP_CONCAT(工具), 但是,我真正想要的是看起来像这样的结果。我该怎么做? 问题答案: 您需要使用以下选项:

  • 主要内容:在创建表时设置主键约束,在修改表时添加主键约束,删除主键约束主键(PRIMARY KEY)的完整称呼是“主键约束”,是 MySQL 中使用最为频繁的约束。一般情况下,为了便于 DBMS 更快的查找到表中的记录,都会在表中设置一个主键。 主键分为单字段主键和多字段联合主键,本节将分别讲解这两种主键约束的创建、修改和删除。 使用主键应注意以下几点: 每个表只能定义一个主键。 主键值必须唯一标识表中的每一行,且不能为 NULL,即表中不可能存在有相同主键值的两行

  • 要将记录或到联机数据库,需要使用这个php脚本(谢谢@Sloan Thrasher,@lovepreet-singh)。 但我在浏览器中得到了以下SQL Echo。在这种情况下,联机数据库不会更新或插入新记录。

  • 好的,所以我不确定这是否可能,但我需要更改一个表中的主键值,以匹配另一个表中的FK值。 我创建了一个表-POS_Transactions(FK REGISTER)并导入了它的值,然后创建了另一个表-Registers(pk Registers key)并导入了它的值。但是当我导入寄存器的值时,我遇到了一些问题,必须清除表并再次尝试多次(这就是为什么数字是从15到22的原因,它只是以这种方式自动更新

  • Jboss 7.2.0、ejb3、oracle项目中的所有实体都定义了像@sequenceGenerator这样的序列生成器(Name=“xx”,sequenceName=“yy”allocationsize=“10”) 对于一对多关系,有时我会遇到重复主键的问题。不确定这里有什么问题,但是在事务回滚之后,序列被重置,并且我一直有约束冲突错误,我已经将allocationSize更改为1,这似乎是