作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在数据库中有一个包含数据的现有表,我想向其中的 customer_id 列添加唯一约束。
我尝试执行 $table->foreignId('customer_id)->unique()->change()
。但这似乎不起作用。这同样适用于任何非外部字段,如字符串和整数。
错误:
SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'customer_id' (SQL: alter table `partner_preferences` add `customer_id` bigint unsigned not
空)
最佳答案
foreignId()
本质上是创建一个新列,在您的情况下该列已经存在。
The
foreignId
method is an alias of theunsignedBigInteger
method:
laravel - difference between foreignId() and unsignedBigInteger()
请试试这个:
public function up()
{
// Change the 'table name' according to your needs.
Schema::table("employees", function (Blueprint $table) {
$table->unique('customer_id');
});
}
警告:确保您应用此约束的列实际上唯一。 (必须具有唯一数据。)
否则,将抛出错误(SQLSTATE[23000]:违反完整性约束:1062 Duplicate entry '1' for key 'XXXX_customer_id_unique'
)。
关于laravel - 如何将唯一约束添加到 laravel 中现有的 foreignId 列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68087622/
我是一名优秀的程序员,十分优秀!