PostgreSQL在非空值上插入错误

时间:2016-06-21 16:11:51

标签: php postgresql laravel laravel-5 lumen

尝试在PostgreSQL数据库上执行插入查询时,我遇到了一个奇怪的错误。我正在执行以下查询:

insert into "shopping_carts" 
(
"application_version", "charges", "device_id", "device_type", "id", "new_client",
"os_version", "platform_name", "resolution", "shopping_cart_date",
"shopping_cart_date_day", "shopping_cart_date_day_of_week",
"shopping_cart_date_day_of_year", "shopping_cart_date_hour",
"shopping_cart_date_minute", "shopping_cart_date_month",
"shopping_cart_date_numeric", "shopping_cart_date_quarter", 
"shopping_cart_date_quarter_name", "shopping_cart_date_second", 
"shopping_cart_date_week_of_year", "shopping_cart_date_year", "status", 
"store_id", "store_name", "tip", "total_after_discounts", "total_discount", 
"total_items", "user_gender", "user_id", "whim_has_photo", "whim_what", 
"whim_where"
) 
values 
(
2.0, 0.0, '105755B41135E2A6F5C09089EE776BA179A4DD290E27B6DC11AFC94534572BD7', 
'smartphone', 'QWFISFJ23434', true, 'Ubuntu 15.10', 'ios', '1920x1080', 
'2016-06-20 18:42:15', 20, 1, 171, 18, 42, 6, 1466448135, 2, 'Second Quarter', 
15, 25, 2016, 'PROGRESS', 15, 'BOG F. Centro Andino', 0, 0, 0, 0, 'M', 32, 
TRUE, 'Lechona', 'Lechoneria de la esquina'
)

错误是:

Kernel error: ERROR:  null value in column "tip" violates not-null constraint

DETAIL:  Failing row contains (QWFISFJ23434, 0, 0, 0, PROGRESS, null, null, 0, 15, BOG F. Centro Andino, null, null, null, 32, M, Ubuntu 15.10, 1920x1080, 2.0, ios, 105755B41135E2A6F5C09089EE776BA179A4DD290E27B6DC11AFC94534572BD7, smartphone, 2016-06-20 18:42:15, 1466448135, 2016, 6, 20, 2, Second Quarter, 171, 1, 25, 18, 42, 15, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, t, null, null, null, null, null, null).

我明确地为"提示"发送了一个值。专栏,所以我不明白为什么我会收到这个错误。

此外,还有一些可能有用的附加信息:

  1. 在错误细节中,有一个奇怪的" t"。
  2. shopping_carts表有更多列,但它们都可以为空。
  3. 在DB中存在3个表,它们从shopping_carts表继承,并在shopping_carts表中有插入规则。
  4. 我正在使用laravel迁移来创建数据库
  5. 感谢您提供任何帮助。

2 个答案:

答案 0 :(得分:0)

找到了解决方案。

我在shopping_cart子表上有一个插入规则。问题是我添加了"提示"定义规则后的列。

我不得不再次执行规则查询来更新它们。这解决了这个问题。

答案 1 :(得分:0)

我的问题是模型没有可填充的值。
这可能是由mass assignable操作引起的。
只需在模型中添加它(在您的情况下为“ shopping_cart”): ::ng-deep .mat-button.mat-accent .mat-button-focus-overlay, .mat-icon-button.mat-accent .mat-button-focus-overlay, .mat-stroked-button.mat-accent .mat-button-focus-overlay { background-color: transparent; }