首页 > 解决方案 > 如何在 sqlite3 中自动增加自定义主键?

问题描述

我希望我的问题不会被标记为与问题重复,因为尽管本质上是相同的问题,但我希望使用 SQLite3 来完成此问题。

[设想]

我创建了 3 个数据库表,如下所示:

CREATE TABLE INVENTORY (
    Item_SKU INTEGER PRIMARY KEY AUTOINCREMENT,
    Item_Title TEXT,
    Item_Price REAL);
CREATE TABLE CUSTOMERS (
    Customer_ID INTEGER PRIMARY KEY AUTOINCREMENT,
    C_First_Name TEXT,
    C_Last_Name TEXT);
CREATE TABLE ORDERS (
    Invoice_ID INTEGER PRIMARY KEY AUTOINCREMENT,
    Customer_ID INTEGER,
    Item_SKU INTEGER,
    FOREIGN KEY(Customer_ID) REFERENCES CUSTOMERS(Customer_ID),
    FOREIGN KEY(Item_SKU) REFERENCES INVENTORY(Item_SKU));

我想要完成的是为我的所有主键使用自定义前缀,以便Item_SKU自动填充INVEN001第一行之类的内容,然后自动增加INVEN002INVEN003

我也想从,等获得我的Customer_ID自动增量。CUST001CUST002

然后最后在ORDERS表中,我想连接外键并将结果用Invoice_ID作主键值,这样结果就会像CUST001INVEN001,CUST002INVEN002等。

这可行吗?还是我只是远远超出了 SQL 的领域,以至于这甚至没有意义或根本没有必要?非常感谢任何建议。

标签: sqlpython-3.xsqlite

解决方案


为什么不以编程方式执行此操作?创建一个新列并在其中放入一个值,将前缀与 PRIMARY KEY 的值连接起来?那么当每个表中的条目创建时,您同时添加该值?


推荐阅读