mysql 插入数据后返回主键

mysql 插入数据后返回主键,第1张

你可以看看这里,大致有三种办法:

#方法一是使用last_insert_id

 SELECT LAST_INSERT_ID()

#方法二是使用max(id),但是不适用高并发环境下。

方法三是创建一个存储过程,在存储过程中调用先插入再获取最大值的 *** 作

#方法四使用@@identity

select @@IDENTITY

#基本MySQL的学习,可以学习这里。使用MariaDB数据库管理系统。 linuxprobe.com/chapter-18.html

#出处:

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

条记录已选择。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11694168.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存