我已经通过自定义模块创建了一个表。现在我想再创建一个具有相同 sql 设置的表。我正在使用以下代码创建表。
$installer = $this;
$installer->startSetup();
$installer->run("
DROP TABLE IF EXISTS {$this->getTable('menu')};
CREATE TABLE {$this->getTable('menu')} (
`menu_id` int(11) unsigned NOT NULL auto_increment,
`title` varchar(255) NOT NULL default '',
`parent` int(11) unsigned NOT NULL default '0',
`position` int(11) unsigned NOT NULL default '0',
`status` smallint(6) NOT NULL default '0',
`created_time` datetime NULL,
`update_time` datetime NULL,
PRIMARY KEY (`menu_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
");
$installer->run("
DROP TABLE IF EXISTS {$this->getTable('menu_images')};
CREATE TABLE {$this->getTable('menu_images')} (
`menu_images_id` int(11) unsigned NOT NULL auto_increment,
`title` varchar(255) NOT NULL default '',
`menu_id` int(11) unsigned NOT NULL default '0',
`position` int(11) unsigned NOT NULL default '0',
`filename` varchar(255) NOT NULL default '',
`status` smallint(6) NOT NULL default '0',
`created_time` datetime NULL,
`update_time` datetime NULL,
PRIMARY KEY (`menu_images_id`),
FOREIGN KEY (menu_id) REFERENCES menu(menu_id) ON UPDATE CASCADE ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;");
当我删除第二个表时,上面的代码工作正常,但是当我尝试用一个文件创建两个表时,它会产生错误
表定义不正确;只能有一个自动列,并且必须将其定义为键。
我该如何克服这个问题。