› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
monster1priest
V2EX  ›  MySQL

Innodb 怎么实现 subId 自动增长并在 id 重置时也重置

  •  
  •   monster1priest · Jul 19, 2023 · 2175 views
    This topic created in 1175 days ago, the information mentioned may be changed or developed.

    目标数据库形式:
    | id | subId |
    | ---- | ---- |
    | 1 | 1 |
    | 1 | 2 |
    | 1 | 3 |
    | 2 | 1 |
    | 2 | 2 |
    | 2 | 3 |
    | 1 | 4 |

    插入数据时,id 相同,subId 会自动增长。

    MyIsAM 引擎可以设置联合主键,把 subId 设置为自动增长。
    新项目写操作比较多,想用 InnoDB ,用不用联合主键没关系,只要能做到上面的形式就可以。

    2 replies  •  2023-07-19 14:18:37 +08:00
    iosyyy
        1
    iosyyy  
       Jul 19, 2023   ❤️ 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 引擎中设置联合主键那样自动增长,但通过使用自增主键和外键,你可以实现类似的目标数据库形式。


    不过我的建议是这种操作最好不要放到数据库直接查一下不就完事了..这东西有索引而且是数字定位很快的
    monster1priest
        2
    monster1priest  
    OP
       Jul 19, 2023
    @iosyyy 感谢🙏
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2481 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 08:56 · PVG 16:56 · LAX 01:56 · JFK 04:56
    ♥ Do have faith in what you're doing.