mysql中如何使用存储过程为一个字段添加值

mysql中如何使用存储过程为一个字段添加值,第1张

create proc Mypro

as

begin tran t1

declare @Myii int,@id int

begin

select @Myii=1

declare cur1 cursor for select id from 一个表

open cur1

fetch next from cur1 into @id

while(@@fetch_status=0)

begin

update 一个表 set 序号=@Myii where id=@id

select @Myii=@Myii+1

fetch next from cur1 into @id

end

close cur1

deallocate cur1

end

commit tran t1

--因为使用的游标,而你的数据量又大,可能执行的时间有点长

先看一下最简单的例子,在test中,添加一个字段,字段名为birth,类型为date类型。

mysql>

alter

table

test

add

column

birth

date

Query

OK,

0

rows

affected

(0.36

sec)

Records:

0

Duplicates:

0

Warnings:

0

查询一下数据,看看结果:

mysql>

select

*

from

test

+------+--------+----------------------------------+------------+-------+

|

t_id

|

t_name

|

t_password

|

t_birth

|

birth

|

+------+--------+----------------------------------+------------+-------+

|

1

|

name1

|

12345678901234567890123456789012

|

NULL

|

NULL

|

|

2

|

name2

|

12345678901234567890123456789012

|

2013-01-01

|

NULL

|

+------+--------+----------------------------------+------------+-------+

2

rows

in

set

(0.00

sec)

从上面结果可以看出,插入的birth字段,默认值为空。我们再来试一下,添加一个birth1字段,设置它不允许为空。

mysql>

alter

table

test

add

column

birth1

date

not

null

Query

OK,

0

rows

affected

(0.16

sec)

Records:

0

Duplicates:

0

Warnings:

0

居然执行成功了!?意外了!我原来以为,这个语句不会成功的,因为我没有给他指定一个默认值。我们来看看数据:

mysql>

select

*

from

test

+------+--------+----------------------------------+------------+-------+------------+

|

t_id

|

t_name

|

t_password

|

t_birth

|

birth

|

birth1

|

+------+--------+----------------------------------+------------+-------+------------+

|

1

|

name1

|

12345678901234567890123456789012

|

NULL

|

NULL

|

0000-00-00

|

|

2

|

name2

|

12345678901234567890123456789012

|

2013-01-01

|

NULL

|

0000-00-00

|

+------+--------+----------------------------------+------------+-------+------------+

2

rows

in

set

(0.00

sec)

哦,明白了,系统自动将date类型的值,设置了一个默认值:0000-00-00。下面我来直接指定一个默认值看看:

mysql>

alter

table

test

add

column

birth2

date

default

'2013-1-1'

Query

OK,

0

rows

affected

(0.28

sec)

Records:

0

Duplicates:

0

Warnings:

0

mysql>

select

*

from

test

+------+--------+----------------------------------+------------+-------+------------+------------+

|

t_id

|

t_name

|

t_password

|

t_birth

|

birth

|

birth1

|

birth2

|

+------+--------+----------------------------------+------------+-------+------------+------------+

|

1

|

name1

|

12345678901234567890123456789012

|

NULL

|

NULL

|

0000-00-00

|

2013-01-01

|

|

2

|

name2

|

12345678901234567890123456789012

|

2013-01-01

|

NULL

|

0000-00-00

|

2013-01-01

|

+------+--------+----------------------------------+------------+-------+------------+------------+

2

rows

in

set

(0.00

sec)

看到没,将增加的birth2字段,就有一个默认值了,而且这个默认值是我们手工指定的。

关于MySQL中给表添加一个字段,本文就介绍这么多,希望对大家有所帮助,谢谢!


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

原文地址:https://54852.com/bake/11773602.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存