错误代码:1364。字段'AddressID'没有默认值

时间:2017-02-07 10:14:14

标签: mysql

当我尝试执行以下查询时,我收到上述错误:

insert into person_address(PersonID)
select personID from person;

所以我基本上想要实现的是将数据从我的主键插入到我的外键中,因为当数据首次输入到人员表时它们没有被链接。

我是否正确插入此数据,然后使用更新查询创建存储过程以在将来更新这些表?

表格结构:

person_address(包含人员和地址表的外键以及我在哪里插入值)

AddressID   int(11) NO  PRI     
PersonID    int(11) YES MUL 

人:

personID    int(11) NO  PRI     auto_increment
Forename    varchar(30) YES         
Surname varchar(30) YES         
PhoneNumber varchar(15) YES         
Email   varchar(100)    YES         

地址:

addressID   int(11) NO  PRI     auto_increment
line1   varchar(100)    YES         
line2   varchar(100)    YES         
county  varchar(50) YES         
postcode    varchar(8)  YES         
country varchar(20) YES         

1 个答案:

答案 0 :(得分:0)

您的person_address表包含一个名为AddressID的列。它定义为NOT NULL,但在插入记录时不提供值。

因此要么在insert语句中提供值,要么为列定义默认值。

我猜您的AddressID列是您表格的主键。所以你可能忘了把它定义为AUTO INCREMENT。