Mysql 错误1062(23000):重复输入';1';对于键';初级';

Mysql 错误1062(23000):重复输入';1';对于键';初级';,mysql,Mysql,我在Secure Shell中执行项目时遇到问题。即使我试图插入的表是空的,我也会收到上述错误。 我的工作包括: CREATE TABLE LARGE_SLIP( MARINA_NUM CHAR(4) PRIMARY KEY NOT NULL, SLIP_NUM CHAR(4) NOT NULL, RENTAL_FEE DECIMAL(8,2), BOAT_NAME CHAR(50), OWNER_NUM

我在Secure Shell中执行项目时遇到问题。即使我试图插入的表是空的,我也会收到上述错误。 我的工作包括:

CREATE TABLE LARGE_SLIP( 
        MARINA_NUM CHAR(4) PRIMARY KEY NOT NULL, 
        SLIP_NUM CHAR(4) NOT NULL, 
        RENTAL_FEE DECIMAL(8,2), 
        BOAT_NAME CHAR(50), 
        OWNER_NUM CHAR(4));
INSERT INTO LARGE_SLIP (
    SELECT MARINA_NUM, SLIP_NUM, RENTAL_FEE, BOAT_NAME, OWNER_NUM 
    FROM MARINA_SLIP WHERE LENGTH = '40');
ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'

我试图查找答案,但大多数结果显示,我试图插入的表中已分配了某些内容。然而,这张桌子是空的。我还在学习,这实际上是一个课堂作业。非常感谢您的帮助

自行运行子查询,您是否获得dupe MARINA_NUM值

SELECT MARINA_NUM, SLIP_NUM, RENTAL_FEE, BOAT_NAME, OWNER_NUM 
FROM MARINA_SLIP WHERE LENGTH = '40';

如果整行重复,则可以使用UNIQUE。如果没有,您需要找到另一种方法来限制具有dupe MARINA_NUM值的行。

我发现了问题所在 当您为此问题创建表时,实际上创建了两个主键

创建表格大_SLIP( MARINA_NUM CHAR(4)不为空, SLIP_NUM CHAR(4)不为空, 租赁费小数(8,2), 船名字符(50),
OWNER_NUM CHAR(4),主键(MARINA_NUM,SLIP_NUM))

该错误意味着
SELECT
查询返回多行
MARINA_NUM=1
。它显示MARINA_NUM确实复制了1,但它们位于不同的行中,即MARINA NUM(1,1,1)Slip NUM(A1,A2,A3)租赁费(3800,3800,3600)船名(安德森二世,我们的玩具,Escape)船主NUM(AN75,EL25,KE22)那就是错误的原因。你能发布一些样本数据和一个你希望新数据集看起来像什么的例子吗?它应该看起来像底部的表格,但只有在长度=40的地方。如果你想在上下文中看到实际问题,这就是我正在看的页面