資料庫的自動增長的主鍵查詢

2021-08-11 15:36:25 字數 787 閱讀 4934

預約表和預約詳情表是兩種關聯表,預約表的主鍵id是預約詳情表的外來鍵,當新增預約表的時候,我們會有好幾條預約詳情表的資料需要新增,這個時候我們需要獲取預約表的主鍵id,但是我們的預約表中的主鍵id是自增長的,在插入預約表的時候我們並不能獲取插入資料的主鍵。當我們想實現在插入預約表的時候,將預約詳情表的資料也插入,該怎麼做?

1. 在設計資料庫的時候,不要將主鍵設定為自增長,設定成隨機生成。這樣我們在插入預約表的時候,我們就可以獲取預約表的主鍵。

2. 在插入預約表中的資料中找到乙個可以唯一標識的資料。將這個資料作為查詢條件,查詢一遍之後便可以得到我們想要的主鍵。

3. 在表中增加乙個可以唯一標識的資料,如當前時間(精確到毫秒),然後我們將這個資料當作查詢條件,查詢一遍之後,我們可以得到我們想要的資料。

4. 使用select max(id) from tablename;

5. 使用 last_insert_id();不過這個需要注意的是:

1. 函式基於connection,所以如果你的插入語句和函式使用語句不在同乙個connection,是沒有效果的。

2. 函式是與表無關的,如果在a表插入一條語句,在b表插入一條語句,使用函式後,是返回b表中的主鍵值

3. 使用insert語句插入多條,返回插入第一條的主鍵值

6. 使用mysql的全域性引數:@@identity

問題的解決方法往往不止有一種,當我們的以為只有一種方法的時候,我覺得有必要通過一些必要的途徑,如網路查詢,諮詢大牛等方法去發現和尋找其他的解決方法,然後比較兩個方法的優缺點擊擇最適合自己專案的解決方法。

oracle資料庫主鍵自動增長sql

我們都知道,在mysql中,要實現主鍵的自動遞增非常簡單.只需要在主鍵定義的後面加上auto increment即可,但是在oracle中就不是這樣,需要分幾步來完成 1.建立乙個表 create table 戶口本 戶號 integer not null,戶別 char 20 not null,戶...

MySQL資料庫 索引 主鍵 自增長

對資料庫表的一列或者多列的值進行排序的一種結構 btree方式 索引示例 開啟執行時間檢測 show variables like pro set profiling 1 執行查詢語句 無索引 select name from student where name tom2000000 檢視執行時間...

oracle主鍵自動增長的設定

1建立資料表 create table test increase userid number 10 primary key,主鍵,自動增加 username varchar2 20 2建立自動增長序列 create sequence testincrease sequence increment ...