目标数据库形式:
| id | subId |
| ---- | ---- |
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
| 2 | 1 |
| 2 | 2 |
| 2 | 3 |
| 1 | 4 |
插入数据时,id 相同,subId 会自动增长。
MyIsAM 引擎可以设置联合主键,把 subId 设置为自动增长。
新项目写操作比较多,想用 InnoDB ,用不用联合主键没关系,只要能做到上面的形式就可以。
1
iosyyy 2023-07-19 14:13:11 +08:00 1
chatgpt
在 InnoDB 引擎下,你可以通过使用自增主键和外键来实现类似的目标数据库形式,尽管不能直接设置联合主键并让 subId 自动增长。以下是一种可能的方式来实现该结构: 创建主表( id 主键自增): sql Copy code CREATE TABLE main_table ( id INT AUTO_INCREMENT PRIMARY KEY ); 创建子表( subId 主键自增,同时包含 id 的外键约束): sql Copy code CREATE TABLE sub_table ( subId INT AUTO_INCREMENT PRIMARY KEY, id INT, FOREIGN KEY (id) REFERENCES main_table(id) ON DELETE CASCADE ON UPDATE CASCADE ); 插入数据: 首先,插入主表数据: sql Copy code INSERT INTO main_table VALUES (1), (2); 然后,插入子表数据( subId 会自动增长,而 id 将来自于主表的 id ): sql Copy code INSERT INTO sub_table (id) VALUES (1), (1), (1), (2), (2), (2), (1); 这样,你可以在 InnoDB 引擎下建立主表和子表,并通过外键将它们关联起来。虽然 subId 并不会像 MyISAM 引擎中设置联合主键那样自动增长,但通过使用自增主键和外键,你可以实现类似的目标数据库形式。 不过我的建议是这种操作最好不要放到数据库直接查一下不就完事了..这东西有索引而且是数字定位很快的 |
2
monster1priest OP @iosyyy 感谢🙏
|