Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 重复输入';0';对于键';初级';_Mysql_Sql Insert - Fatal编程技术网

Mysql 重复输入';0';对于键';初级';

Mysql 重复输入';0';对于键';初级';,mysql,sql-insert,Mysql,Sql Insert,我不明白为什么在尝试填充此表时会出现此错误。现在桌子上什么都没有,所以我不明白为什么会有一个副本 这是我正在使用的代码: INSERT INTO Suppliers (supp_id,company_name,town,phone) Values ("ADT217","AdTec","Birmingham","0121-368-1597"), ("CPS533","CPS",&

我不明白为什么在尝试填充此表时会出现此错误。现在桌子上什么都没有,所以我不明白为什么会有一个副本

这是我正在使用的代码:

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)
);

当您有一个主键但没有给它一个初始化值时,就会发生这种情况。插入本身导致了重复

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

  • supp\u id
    是主键并声明为数字。在MySQL的旧版本中,我认为字符串值会被静默地转换为数字。因为前导字符是字母,所以该值为0

  • 您还有另一个
    id
    字段,它是主键,但没有给定值,也没有声明
    auto_increment

  • 编辑:

    我怀疑您需要以下代码:

    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()
      ,除非你真的喜欢字符串末尾有很多空格
    • 我向表中添加了一个唯一的供应商名称,并声明该id为
      自动增量
    • 单引号是字符串常量的ANSI标准。MySQL(和其他一些数据库)允许双引号,但没有理由不使用该标准

    对于您的表,您可以得到类似“不正确的整数值”的错误,但根据MySQL服务器配置,它可以自动进行转换(字符串->整型),因为您的查询字符串必须变为“0”,因此它会生成两行,其中0作为支持id,并获得错误键“PRIMARY”的重复条目“0”。我猜您使用的是InnoDB作为表类型,在本例中,查询将作为事务运行,并在第一个错误后回滚(在本例中,它将是第二行)


    更改类型后,插入将正常工作。

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

    WordPress数据库错误为查询的键“PRIMARY”复制条目“0”

    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
    

    哪列是主键?请使用表的定义编辑问题。supp_id可能是整数类型,而不是char/varchar。supp_id是suppliers表上的主键。可能有一个id列未设置为自动递增。实际上,如果没有表定义,这只是空泛的推测。1.)这不应该导致插入错误吗?(不正确的整数值)?是否支持id是int而不是char或varchar?我尝试将其更改为varchar,但不起作用:(@jmc1690请发布您的表定义(
    SHOW CREATE table Suppliers
    )@dognose…很有趣。它在较新的版本中肯定会产生错误。我想知道早期版本是否进行了静默转换,因为OP肯定表明这不是问题所在。
    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