Php 无法添加默认值为NULL的NOT NULL列

Php 无法添加默认值为NULL的NOT NULL列,php,sql,laravel,testing,codeception,Php,Sql,Laravel,Testing,Codeception,我正在使用codeception测试一个laravel站点,并遵循以下步骤: 我得到以下错误: [Illumb\Database\QueryException]SQLSTATE[HY000]:一般错误:1无法添加默认值为NULL的NOTNULL列(SQL:alter table“markers”add列“user_id”integer NOT NULL) 提前谢谢。您真正的问题叫做ALTER TABLE。如果要添加NOTNULL列,则需要为现有记录设置默认值!否则,数据库能做什么?它会为您解答

我正在使用codeception测试一个laravel站点,并遵循以下步骤:

我得到以下错误:

[Illumb\Database\QueryException]SQLSTATE[HY000]:一般错误:1无法添加默认值为NULL的NOTNULL列(SQL:alter table“markers”add列“user_id”integer NOT NULL)


提前谢谢。

您真正的问题叫做ALTER TABLE。如果要添加NOTNULL列,则需要为现有记录设置默认值!否则,数据库能做什么?

它会为您解答这个问题。您正试图将默认值NULL应用于表示不允许NULL的列。“无法添加默认值为NULL的非NULL列”。。。嗯,是吗?你会期望什么呢?在laracast网站上回答检查一下,这很奇怪,因为即使默认值为NULL,你仍然可以指定一个值,在这种情况下,这是必须的。然而,这是特定底层数据库的一个限制,并不是真正的PHP问题。如果您认为Laravel的ORM/数据库框架是问题所在,或者您使用它的方式是问题所在,请至少共享导致此错误的代码。是的,
alter table“markers”add column“user_id”integer not null DEFAULT 0