重复输入' 0'关键' PRIMARY'

时间:2015-05-31 14:21:59

标签: mysql phpmyadmin sql-insert

我不明白为什么我在尝试填充此表时遇到此错误。目前表中没有任何内容,所以我不明白为什么会出现重复......

这是我使用的代码:

INSERT INTO Suppliers
(supp_id,company_name,town,phone)
Values
("ADT217","AdTec","Birmingham","0121-368-1597"),
("CPS533","CPS","Maidenhead","01382-893715"),
("FCL162","ForComp Ltd","Nottingham","01489-133722"),
("KBC355","KBC Computers","Glasgow","0141-321-1497");

非常感谢任何帮助,

谢谢。

供应商表......

CREATE TABLE suppliers(
    supp_id int NOT NULL,
    company_name character(15) NOT NULL,
    town character(15)
    phone character(15)
primary key(supp_id)
);

3 个答案:

答案 0 :(得分:3)

如果您有主键但未给它初始化值,则会发生这种情况。插件本身导致重复。

在您的情况下,我会想到两种可能性:

  1. supp_id是主键,并声明为数字。在旧版本的MySQL中,我认为字符串值会以静默方式转换为数字。由于前导字符是字母,因此值为0.

  2. 您有另一个id字段作为主键,但没有给出任何值且未声明auto_increment

  3. 编辑:

    我怀疑您需要以下代码:

    CREATE TABLE suppliers (
        supplierId int NOT NULL auto_increment primary key,
        supp_name varchar(255) unique,
        company_name varchar(15) NOT NULL,
        town varchar(15),
        phone varchar(15)
    );
    
    INSERT INTO Suppliers(supp_name, company_name, town, phone)
        Values ('ADT217', 'AdTec', 'Birmingham', '0121-368-1597'),
               ('CPS533', 'CPS', 'Maidenhead', '01382-893715'),
               ('FCL162', 'ForComp Ltd', 'Nottingham', '01489-133722'),
               ('KBC355', 'KBC Computers', 'Glasgow', '0141-321-1497');
    

    一些注意事项:

    • 通常你想要varchar()而不是char(),除非你真的喜欢字符串末尾有很多空格。
    • 我在表格中添加了一个唯一的供应商名称,并将其声明为auto_increment
    • 单引号是字符串常量的ANSI标准。 MySQL(以及其他一些数据库)允许使用双引号,但没有理由不使用该标准。

答案 1 :(得分:1)

使用您的表,您可以得到错误,例如"错误的整数值",但根据MySQL服务器配置,它可以自动进行转换(string-> int),因为您的查询字符串必须变为&#34 ; 0"因此,它产生2行,其中0作为supp_id并获得错误重复条目' 0'关键' PRIMARY' 。我猜您使用 InnoDB 作为表类型,在这种情况下,查询将作为事务运行,它将在第一次错误后回滚(对于此示例,它将是第二行)。

DROP TABLE suppliers; -- Will drop your old table
CREATE TABLE suppliers(
supp_id varchar(30) NULL, -- You can set length as you wish
company_name character(15) NOT NULL,
town character(15),
phone character(15),
primary key(supp_id)
);

INSERT INTO Suppliers
(supp_id,company_name,town,phone)
Values
("ADT217","AdTec","Birmingham","0121-368-1597"),
("CPS533","CPS","Maidenhead","01382-893715"),
("FCL162","ForComp Ltd","Nottingham","01489-133722"),
("KBC355","KBC Computers","Glasgow","0141-321-1497");

更改后的类型插入工作没有问题。

答案 2 :(得分:0)

在 Wordpress 中,当我们克隆网站时,媒体和用户角色不起作用。错误如下:

<块引用>

WordPress 数据库错误重复条目 '0' for key 'PRIMARY' for query

INSERT INTO `wp_334_actionscheduler_logs` 
       (`action_id`, `message`, `log_date_gmt`, `log_date_local`) 
VALUES (0, 'action complete via WP Cron', '2021-02-17 05:29:40', 
        '2021-02-17 05:29:40') 

制作

do_action_ref_array('action_scheduler_run_queue'), 
WP_Hook->do_action, 
WP_Hook->apply_filters, 
ActionScheduler_QueueRunner->run, 
ActionScheduler_QueueRunner->do_batch, 
ActionScheduler_Abstract_QueueRunner->process_action, 
do_action('action_scheduler_after_execute'), 
WP_Hook->do_action,
WP_Hook->apply_filters, 
ActionScheduler_Logger->log_completed_action, 
ActionScheduler_DBLogger->log