我已经使用Phinx迁移创建了一个表
$table = $this->table('verification', ['id' => false, 'primary_key' => ['validation_id']]);
$table->addColumn('validation_id','string',['limit' => 15, 'null' => false])
->addColumn('status','string', ['null' => true])
>create();
现在在一个单独的迁移中,我想改变表,并将id值设置为true,并将该id作为主键(默认行为)。并将validation_id作为唯一索引。
我知道如何先删除表并创建新表。但是我不想放下桌子,只是改变它。如何改变表添加回自动增量默认id列?
在数据库中更改结构的一个简单方法是使用数据库客户端,如equalpro、mysql worktable、sqlyog等。
进行更改时,运行以下命令:
bin/cake bake migration_diff NameOfTheMigrations
此命令将为您创建一个迁移文件,其中包含您在db客户端中所做的所有更改。
备注:
如果没有以前的迁移文件,则必须首先运行以下命令:
bin/cake migrations dump
阅读更多:
https://book.cakephp.org/migrations/3/en/index.html#generating-两种数据库状态之间的差异
正如标题所描述的,我试图利用phinx进行数据库迁移,但我有一个自动增量列,它并没有用作主键。据我所知,菲尼克斯是做不到这一点的。 我意识到,我可能完全没有那个列,但它是巨大的遗留代码的一部分,至少目前,我没有时间重构整个应用程序,以确保该列不会在任何地方使用。如果我的结论是正确的,而phinx无法实现这一点,我希望有一些替代方案,拥有所描述的功能
如何在Laravel迁移和存在表中添加列自动增量,但不是主键,它的主键是。我使用Laravel 5.7和pgsql。
我正在尝试使用现有主键将自动递增id添加到现有表中 这是我的密码 表代码的初始迁移 将自动增量ID添加到现有表代码 我试图做的是向这个现有表添加一个自动递增的id,但它给了我这个错误 有人能帮帮我吗?我不想删除表的主键,我只想添加另一个自动递增的id,它不是主键,但可以是唯一键
问题内容: 我正在尝试添加具有自动增量的主键。 我已经阅读了一些文档和其他问题-有和声明,但是不起作用。 这是我做的: 和 我怎么了 我只想将主键增加1。 问题答案: 是或多或少是一种列类型,所以说就像说,只是说: 如果您想自己创建序列,那么您想将序列中下一个值的默认值设为默认值,这意味着: 为了模拟通常的行为,您还需要使表拥有该序列: 阅读手册的“串行类型”部分可能会很有成果。 我还建议您不要对
我想向包含数据的现有表中添加一个新的自动递增主列。我该怎么做? 我首先添加了一列,然后尝试添加一个序列,之后我就不知道如何插入该列并将其作为主键。
我将向一个SQL Server表中添加一行,该表的主键列是自动递增的(< code>identity)。当我以编程方式向表中插入一个新行时,有没有办法获得所添加行的键值,因为我想在另一个相关表中将它用作外键?