我正在使用Codeigniter 3.1.8和Bootstrap 4开发一个基本的博客应用程序。
有一个帖子和一个类别表。目前,应用程序会在创建帖子时将类别 ID插入到帖子表中(您不能在为其选择类别之前添加帖子),但是我没有在两个表之间设置外键关系(为了方便的发展)并且没有级联。
现在我想在两个表之间设置一个特殊的级联关系:每当删除一个类别时,该类别中的所有帖子都应该1在该cat_id列中。
我为应用程序创建了一个安装过程:在创建数据库并将其凭据提供给application/config/database.php文件后,您可以运行Install控制器,它将创建所有必要的表:
class Install extends CI_Controller {
public function __construct()
{
parent::__construct();
}
public function index(){
// Create all the database tables if there are none
// by redirecting to the Migrations controller
$tables = $this->db->list_tables();
if (count($tables) == 0) {
redirect('migrate');
} else {
redirect('/');
}
}
}
我应该用什么替换最后一行(它具有说明目的):
$this->db->query('ALTER TABLE `posts` ADD FOREIGN KEY(`cat_id`) REFERENCES 'categories'(`id`) ON DELETE SET cat_id to 1;');
为了得到想要的结果?
更新:我的数据库确实使用InnoDB。
鸿蒙传说