把自动增长的ID设为主键时,如何插入新的数据?

把自动增长的ID设为主键时,如何插入新的数据?,第1张

设为自动增加以后就不用管他了,插入的时候只用插入其他内容,例如你现在有一张表user id为自动增加 username password

你在插入的时候只用insert into user (username,password) values('','')

外键数据就是这个外键所对应的表中必须存在这条数据,你才可以在外键的位置插入这条数据。

比如A表是主表,B表为外键所在表:

A

id

name

B

id

aid

如果B表中aid为外键,对应A表的主键id,则在B表中插入数据时,aid字段的值必须在A表中存在。即,如果A表数据如下:

A

id

name

1

a1

2

a2

3

a3

4

a4

则,B表中插入数据时,如果aid为1~4,由于A表中存在该数据,插入可;但如果aid为A表中存在以外的数据(非1~4),则插入不可,因为外键要求主表必须存在这样的数据。

主键设为identity,按流水号自动生成视频id,然后将其插入博客表,同时将生成的视频id插入视频表:

--建表

create table blog (

id int identity(1,1),

vid varchar(20) not null

/*更多列

colu1 int,

colu2 char ...*/

)

create table vedio (

vid varchar(20) not null

/*更多列

colu1 int,

colu2 char ...*/

)

--存储过程

alter proc insert_v

/*自己定义需要传入的参数

@pra1 int,

@pra2 char ...*/

as

declare @v_id varchar(30),

/*自己定义内部参数

@pra_1 int,

@pra_2 char ...*/

select @v_id = datename(yy,getdate()) + datename(mm,getdate())

+ datename(dd,getdate()) + datename(hh,getdate()) + datename(mi,getdate())

+ datename(ss,getdate())

insert into blog values(@v_id/*,@pra1,@pra2...*/)

insert into vedio values(@v_id/*,@pra1,@pra2...*/)

--调用存储过程

exec insert_v /*'pra1','pra2',...*/


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

原文地址: http://outofmemory.cn/sjk/6756560.html

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

发表评论

登录后才能评论

评论列表(0条)

保存