當前位置:首頁 » 編程語言 » sql返回主鍵

sql返回主鍵

發布時間: 2022-10-03 16:15:04

sql語句怎麼查詢表的主鍵

1、打開【SQL Server Management Studio】管理工具,連接資料庫

⑵ db2中插入數據後直接返回主鍵(子增列 id)的sql怎麼寫

你按模式名、表名為條件查找系統表SYSCAT.COLIDENTATTRIBUTES,列NEXTCACHEFIRSTVALUE就是IDENTITY的下一個值,理想得來說這個值減1就是你當前的主鍵值(假如多個用戶在操作這個表這種查法可能不對)。

使用這個表查ID的時候,IDENTITY的CACHE必須為NONE。

⑶ mysql 插入數據後返回主鍵

你可以看看這里,大致有三種辦法:

#方法一是使用last_insert_id
SELECTLAST_INSERT_ID();
#方法二是使用max(id),但是不適用高並發環境下。
方法三是創建一個存儲過程,在存儲過程中調用先插入再獲取最大值的操作
#方法四使用@@identity
select@@IDENTITY
#基本MySQL的學習,可以學習這里。使用MariaDB資料庫管理系統。linuxprobe.com/chapter-18.html
#出處:

⑷ JAVA中用什麼方法向SQL server2005中插入一條數據並返回他的主鍵值

(最基本的連接方法)
1。獲取連接
獲取連接需要兩步,
一是使用DriverManager來注冊驅動(Class.forName(「com.mysql.jdbc.Driver」)),二是使用DriverManager來獲取Connection對像DriverManager.getConnection(url,username,password)
2.獲取Statement(Statement stmt =con.createStatement();)
Statement就是執行sql語句的;

3.執行sql語句
String sql = 「insertinto user value(』zhangSan』, 』123』)」;
int m =stmt.executeUpdate(sql);

//總代碼如下
publicstatic Connection getConnection() throws Exception {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/mydb1";
return DriverManager.getConnection(url, "root", "123");
}
@Test
publicvoid insert() throws Exception {
Connection con = getConnection();
Statement stmt = con.createStatement();
String sql = "insert into user values('zhangSan', '123')";
stmt.executeUpdate(sql);
System.out.println("插入成功!");
}

⑸ db2中插入數據後直接返回主鍵(自增列id)的sql怎麼寫

db2 => CREATE TABLE test_create_tab2 (
db2 (cont.) => id INT NOT NULL PRIMARY KEY generated always as identity,
db2 (cont.) => val VARCHAR(10)
db2 (cont.) => );
DB20000I SQL 命令成功完成。

db2 => INSERT INTO test_create_tab2(val) VALUES ('NO id');
DB20000I SQL 命令成功完成。

這里和 SQL Server 一樣,大家都不能手動指定那個 自增id 的數值
db2 => INSERT INTO test_create_tab2(id, val) VALUES (1, 'id no use');
DB21034E 該命令被當作 SQL 語句來處理,因為它是無效的「命令行處理器」命令。在
SQL 處理期間,它返回:
SQL0798N 不能為定義為 GENERATED ALWAYS 的列 "ID" 指定值。 SQLSTATE=428C9

這里和 SQL Server 不一樣,SQL Server 會自動排除掉那個自動遞增的列
db2 => INSERT INTO test_create_tab2 VALUES ('Is Auto ?');
DB21034E 該命令被當作 SQL 語句來處理,因為它是無效的「命令行處理器」命令。在
SQL 處理期間,它返回:
SQL0117N 賦值數目與指定的或隱含的列數或變數數不一樣。 SQLSTATE=42802

關於 初始數值的設定。
db2 => drop TABLE test_create_tab2;
DB20000I SQL 命令成功完成。

db2 => CREATE TABLE test_create_tab2 (
db2 (cont.) => id INT NOT NULL PRIMARY KEY generated always as identity
db2 (cont.) => (Start With 100
db2 (cont.) => Increment by 1
db2 (cont.) => minvalue 100
db2 (cont.) => maxvalue 999999999
db2 (cont.) => no cycle cache 5 no order),
db2 (cont.) => val VARCHAR(10)
db2 (cont.) => );
DB20000I SQL 命令成功完成。

db2 => INSERT INTO test_create_tab2(val) VALUES ('NO id');
DB20000I SQL 命令成功完成。

db2 => select * from test_create_tab2;

ID VAL
----------- ----------
100 NO id

1 條記錄已選擇。

db2 => select identity_val_local() from SYSIBM.SYSDUMMY1;

1
---------------------------------
100.

1 條記錄已選擇。

⑹ 想返回主鍵值,但sql語句一直報錯,不知道為什麼,是在MySql環境使用的,求大神幫助!

MySql環境, 獲取最新創建的 主鍵值.

不是使用 select @@identity 呀.

這個 select @@identity, 是 SQL Server 資料庫用的。


mysql 是使用另外一個函數, 下面是例子:

mysql> CREATE TABLE test_create_tab2 (
-> id INT AUTO_INCREMENT,
-> val VARCHAR(10),
-> PRIMARY KEY (id)
-> );
Query OK, 0 rows affected (0.09 sec)
mysql> INSERT INTO test_create_tab2(val) VALUES ('NO id');
Query OK, 1 row affected (0.03 sec)
mysql> select last_insert_id() as id;
+----+
| id |
+----+
| 1 |
+----+
1 row in set (0.00 sec)
mysql> INSERT INTO test_create_tab2(val) VALUES ('NO id 2');
Query OK, 1 row affected (0.03 sec)
mysql> select last_insert_id() as id;
+----+
| id |
+----+
| 2 |
+----+
1 row in set (0.00 sec)
mysql> select * from test_create_tab2;
+----+---------+
| id | val |
+----+---------+
| 1 | NO id |
| 2 | NO id 2 |
+----+---------+
2 rows in set (0.00 sec)

⑺ C#與Sql 2000中Insert 時候返回主鍵

你的主鍵是 標識列吧
1:如果插入成功 就 返回 @@identity 最後插入的標識值

即:用一個 查找select @@indentity 或print @@indetity 返回這個值

2:如果不懂 這樣也可以, 標識列是遞增的
所以你最後插入的主鍵值 最大,
可以查找最大的標識值
select max(id) from tab

⑻ db2中插入數據後直接返回主鍵(自增列id)的sql怎麼寫

db2
=>
CREATE
TABLE
test_create_tab2
(
db2
(cont.)
=>
id
INT
NOT
NULL
PRIMARY
KEY
generated
always
as
identity,
db2
(cont.)
=>
val
VARCHAR(10)
db2
(cont.)
=>
);
DB20000I
SQL
命令成功完成。
db2
=>
INSERT
INTO
test_create_tab2(val)
VALUES
('NO
id');
DB20000I
SQL
命令成功完成。
這里和
SQL
Server
一樣,大家都不能手動指定那個
自增id
的數值
db2
=>
INSERT
INTO
test_create_tab2(id,
val)
VALUES
(1,
'id
no
use');
DB21034E
該命令被當作
SQL
語句來處理,因為它是無效的「命令行處理器」命令。在
SQL
處理期間,它返回:
SQL0798N
不能為定義為
GENERATED
ALWAYS
的列
"ID"
指定值。
SQLSTATE=428C9
這里和
SQL
Server
不一樣,SQL
Server
會自動排除掉那個自動遞增的列
db2
=>
INSERT
INTO
test_create_tab2
VALUES
('Is
Auto
?');
DB21034E
該命令被當作
SQL
語句來處理,因為它是無效的「命令行處理器」命令。在
SQL
處理期間,它返回:
SQL0117N
賦值數目與指定的或隱含的列數或變數數不一樣。
SQLSTATE=42802
關於
初始數值的設定。
db2
=>
drop
TABLE
test_create_tab2;
DB20000I
SQL
命令成功完成。
db2
=>
CREATE
TABLE
test_create_tab2
(
db2
(cont.)
=>
id
INT
NOT
NULL
PRIMARY
KEY
generated
always
as
identity
db2
(cont.)
=>
(Start
With
100
db2
(cont.)
=>
Increment
by
1
db2
(cont.)
=>
minvalue
100
db2
(cont.)
=>
maxvalue
999999999
db2
(cont.)
=>
no
cycle
cache
5
no
order),
db2
(cont.)
=>
val
VARCHAR(10)
db2
(cont.)
=>
);
DB20000I
SQL
命令成功完成。
db2
=>
INSERT
INTO
test_create_tab2(val)
VALUES
('NO
id');
DB20000I
SQL
命令成功完成。
db2
=>
select
*
from
test_create_tab2;
ID
VAL
-----------
----------
100
NO
id
1
條記錄已選擇。
db2
=>
select
identity_val_local()
from
SYSIBM.SYSDUMMY1;
1
---------------------------------
100.
1
條記錄已選擇。

熱點內容
安卓上哪裡下大型游戲 發布:2024-12-23 15:10:58 瀏覽:189
明日之後目前適用於什麼配置 發布:2024-12-23 14:56:09 瀏覽:53
php全形半形 發布:2024-12-23 14:55:17 瀏覽:828
手機上傳助手 發布:2024-12-23 14:55:14 瀏覽:732
什麼樣的主機配置吃雞開全效 發布:2024-12-23 14:55:13 瀏覽:830
安卓我的世界114版本有什麼 發布:2024-12-23 14:42:17 瀏覽:710
vbox源碼 發布:2024-12-23 14:41:32 瀏覽:277
詩經是怎麼存儲 發布:2024-12-23 14:41:29 瀏覽:659
屏蔽視頻廣告腳本 發布:2024-12-23 14:41:24 瀏覽:419
php解析pdf 發布:2024-12-23 14:40:01 瀏覽:818