Как я могу автоматически увеличить пользовательский первичный ключ в sqlite3? - PullRequest
0 голосов
/ 10 декабря 2018

Я надеюсь, что мой вопрос не будет помечен как дубликат этого , потому что, хотя по сути тот же вопрос, который я пытаюсь сделать, используя 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, что это даже не имеет смысла или вообще необходимо?Любой совет очень ценится.

1 Ответ

0 голосов
/ 10 декабря 2018

Почему бы вам не сделать это программно?Создать новый столбец и поместить в него значение, которое соединяет префикс со значением PRIMARY KEY?Итак, когда запись в каждой таблице сделана, вы добавляете это значение одновременно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...