sql - 如何在 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
第一行之类的内容,然后自动增加INVEN002
等INVEN003
。
我也想从,等获得我的Customer_ID
自动增量。CUST001
CUST002
然后最后在ORDERS
表中,我想连接外键并将结果用Invoice_ID
作主键值,这样结果就会像CUST001INVEN001
,CUST002INVEN002
等。
这可行吗?还是我只是远远超出了 SQL 的领域,以至于这甚至没有意义或根本没有必要?非常感谢任何建议。
解决方案
为什么不以编程方式执行此操作?创建一个新列并在其中放入一个值,将前缀与 PRIMARY KEY 的值连接起来?那么当每个表中的条目创建时,您同时添加该值?
推荐阅读
- css - 超出其定义宽度的元素
- swift - 从 CSV 在 Core Data 中创建 2000 万条记录 - macOS
- java - Spring JpaRepository getOne() for table with PK as String
- python - 是否有任何 Python 方法可以将 base64 编码的字符串转换为 Image
- reactjs - 单击任何图标时如何更新我的反应
- bash - 如何在两个 shell 脚本之间调用函数?
- http - Golang的“net/http”中客户端HTTP请求和服务器HTTP请求有什么区别
- php - Wordpress URL 重写以同步自定义分类和帖子类型
- python - 我需要一些关于如何根据元素频率对列表进行排序的帮助
- python - 在 Python 的 for 循环中有条件地重试迭代