insert语句与外键约束“fk\消息\电子邮件\ 3d9e16f4”冲突

00jrzges  于 2021-08-09  发布在  Java
关注(0)|答案(2)|浏览(200)

也许有人能告诉我为什么会这样。我编写了以下存储过程:

CREATE PROCEDURE Newmessages 
    @Message_id VARCHAR(20)
    ,@First_name VARCHAR(20)
    ,@Last_name VARCHAR(20)
    ,@Email VARCHAR(20)
    ,@Phone VARCHAR(20)
    ,@Postal_code VARCHAR(20)
    ,@Notification_1 BIT
    ,@Notification_2 BIT
    ,@Own_Pets BIT
    ,@Organization_Id VARCHAR(20)
    ,@Animal_Id VARCHAR(20)
AS
    INSERT INTO [dbo].[Messages]
    VALUES (@Message_id, @First_name, @Last_name, @Email, @Phone,
            @Postal_code, @Notification_1, @Notification_2, @Own_Pets,
            @Organization_Id, @Animal_Id)

现在我试着通过插入:

exec Newmessages '64654', 'Kelli', 'Adkins', 'acprthvs.bpuzcnt@gmail.com', '478-6273327', 'SR5 2QF', 'False', 'False', 'False', '91839', '40550'

我得到:
msg 547,level 16,state 0,procedure newmessages,line 4[batch start line 0]>insert语句与外键约束“fk\uu messages\uuu email\uuu3d9e16f4”冲突。冲突发生在数据库“petfinder”、表“dbo.users”、列“email”中。
问题是,我查过了,我确实收到了我想插入邮件的邮件 Users 表(这是错误)。
在这里我检查了它是否存在于 dbo.Users :

有人知道为什么还会这样吗?

ecr0jaav

ecr0jaav1#

您要插入的电子邮件地址是 acprthvs.bpuzcnt@gma ,表中不存在。

CREATE PROCEDURE Newmessages 
    ...
    ,@Email VARCHAR(20)
    ...

您要输入的电子邮件地址长度为26个字符。

guicsvcw

guicsvcw2#

使用insert上的显式列列表显式Map列:

INSERT INTO [dbo].[Messages] (Message_ID,First_Name, Last_name, Email, Phone, ...)

VALUES (
    @Message_id
    ,@First_name
    ,@Last_name
    ,@Email
    ,@Phone
    ,@Postal_code
    ,@Notification_1
    ,@Notification_2
    ,@Own_Pets
    ,@Organization_Id
    ,@Animal_Id
    )

相关问题