【问题标题】:Seeding Table with auto increment field as zero自动增量字段为零的播种表
【发布时间】:2016-10-18 06:41:54
【问题描述】:

我为一个表创建了一个播种器,我尝试插入的第一条记录的 ID=0。 ID 是一个自动增量字段,当它被插入时,我检查它的 ID,它是 1 而不是 0,所以当我尝试创建 ID 为 1 的记录时,播种器会在下一行中断。

如何插入多条记录,其中第一条的 ID 为 0?

这是我的代码:

DB::table('payment_status')->delete();
DB::table('payment_status')->insert(array('id' => '0', 'name' => 'Initial'));
DB::table('payment_status')->insert(array('id' => '1', 'name' => 'Payment successful, Waiting for Processing'));

【问题讨论】:

  • (1) 你为什么不让自动增量来完成它的工作? (2) 您应该能够将第一条记录更新为 0。 (3) 根据过去的经验,我会避免在自动增量字段中使用 0; MySQL 维护例程将自动增量字段中的值 0 视为需要“修复”的内容。
  • @Jackowski 该建议似乎不起作用。我尝试使用值为 0 的 alter table 选项运行同样的错误
  • @Uueerdo 谢谢你的建议,我后来更新了行!

标签: php mysql laravel-5 laravel-seeding


【解决方案1】:

感谢 Uueerdo 的建议,我能够在插入后更新行:

DB::table('payment_status')->delete();
DB::table('payment_status')->insert(array('id' => '0', 'name' => 'Initial'));
// id zero does not work
DB::unprepared("UPDATE payment_status SET id=0");
DB::table('payment_status')->insert(array('id' => '1', 'name' => 'Payment successful, Waiting for Processing'));

【讨论】:

    猜你喜欢
    • 2015-02-10
    • 1970-01-01
    • 1970-01-01
    • 2010-10-06
    • 2021-03-13
    • 2019-06-26
    • 1970-01-01
    • 2017-04-03
    • 2017-09-16
    相关资源
    最近更新 更多