【发布时间】:2019-01-02 11:56:23
【问题描述】:
我有以下代码:
use Phinx\Migration\AbstractMigration;
class CreateNewTableForJobListLanguages extends AbstractMigration
{
/**
* Migrate up.
*/
public function up()
{
$this->execute('
CREATE TABLE `v2_joblist_languages` (
`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`joblist_id` int(11) NULL,
`language_id` int(11) NULL,
FOREIGN KEY (`joblist_id`) REFERENCES `v2_job_alerts` (`id`),
FOREIGN KEY (`language_id`) REFERENCES `v2_languages` (`id`))
');
}
尝试迁移时,我收到以下错误:
SQLSTATE[42000]: Syntax error or access violation: 1075 Incorrect table definition; there can be only one auto column and it must be defined as a key
我想解决这个问题,并理解它为什么会发生。感谢您的任何帮助,在此先感谢。
【问题讨论】:
-
如错误消息所述,
id列必须定义为主键。 -
谢谢,这就是问题所在。这是我使用 MySQL 的第一周,犯了一些基本错误。分配 PRIMARY KEY(
id) 后,这个错误就消失了。创建一个答案,以便我可以批准它