0

我已经通过自定义模块创建了一个表。现在我想再创建一个具有相同 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;");

当我删除第二个表时,上面的代码工作正常,但是当我尝试用一​​个文件创建两个表时,它会产生错误

表定义不正确;只能有一个自动列,并且必须将其定义为键。

我该如何克服这个问题。

4

0 回答 0