Laravel 迁移中作为主键的字符串
String as Primary Key in Laravel migration
我必须更改数据库中的 table,这样 primary key
就不是标准的 increments
。
这是迁移,
public function up()
{
Schema::create('settings', function (Blueprint $table) {
$table->text('code', 30)->primary();
$table->timestamps();
$table->text('name');
$table->text('comment');
});
}
然而,MySQL 不断返回,
Syntax error or access violation: 1170 BLOB/TEXT column 'code' used in
key specification without a key length (SQL: alter table settings
add primary key settings_code_primary
(code
)
我试过将正常的 increments
id
保留在那里并在不同的迁移中修改 table 但同样的事情发生了。
对我做错了什么有什么想法吗?
Laveral Version 5.4.23
将其更改为字符串。
$table->string('code', 30)->primary();
我必须更改数据库中的 table,这样 primary key
就不是标准的 increments
。
这是迁移,
public function up()
{
Schema::create('settings', function (Blueprint $table) {
$table->text('code', 30)->primary();
$table->timestamps();
$table->text('name');
$table->text('comment');
});
}
然而,MySQL 不断返回,
Syntax error or access violation: 1170 BLOB/TEXT column 'code' used in key specification without a key length (SQL: alter table
settings
add primary keysettings_code_primary
(code
)
我试过将正常的 increments
id
保留在那里并在不同的迁移中修改 table 但同样的事情发生了。
对我做错了什么有什么想法吗?
Laveral Version 5.4.23
将其更改为字符串。
$table->string('code', 30)->primary();