网站建设资讯

NEWS

网站建设资讯

mysql主键id怎么改,mysql如何设置主键

我想在mysql中用触发器修改主键ID 的值

use

从2013年创立创新互联专注于”帮助中小企业+互联网”, 也是目前成都地区具有实力的互联网服务商。团队致力于为企业提供--站式网站建设、移动端应用( H5手机营销、手机APP定制开发、微信开发)、软件开发、信息化解决方案等服务。

[你的数据库]

go

create

trigger

name

on

[table]

after

delete

as

begin

--定义游标,使你逐个往下找个ID,并执行update修改

declare

@flag

int

select

@flag=ID

from

deleted

declare

[cursorname]

cursor

for

select

ID

from

[table]

where

ID@flag

open

[cursorname]

fetch

next

from

[cursorname]

update

[table]

set

ID=ID+1

where

ID=fetch

next

from

[cursorname]

WHILE

@@FETCH_STATUS

=

begin

update

[table]

set

ID=ID+1

where

ID=fetch

next

from

[cursorname]

close

[cursorname]

DEALLOCATE

authors_cursor

end

end

mysql如何设置自增主键

1.主键语法

①创建时:create table sc (

studentno int,

courseid int,

score int,

primary key (studentno) );

②修改时:ALTER TABLE table_name ADD CONSTRAINT pk_name PRIMARY KEY(列名);

前提是原先没有设置主键。

2.外键语法

①创建时:create table sc (

studentno int,

courseid int,

score int,

foreign key (courseid) );

②修改时:

ALTER TABLE news_info[子表名] ADD CONSTRAINT FK_news_info_news_type[约束名] FOREIGN KEY (info_id)[子表列] REFERENCES news_type[主表名] (id)[主表列] ;

3.使用组合主键

如果一列不能唯一区分一个表里的记录时,可以考虑多个列组合起来达到区分表记录的唯一性,形式

①创建时:create table sc (

studentno int,

courseid int,

score int,

primary key (studentno,courseid) );

②修改时:alter table tb_name add primary key (字段1,字段2,字段3);

前提是原来表中没有设置主键,若原先已有主键则会报错。

mysql创建数据库时怎么将主键设置为UUID,建表语句怎么写

mysql设置UUID为主键需要先将数据类型设置为VARCHAR(36),然后插入数据的时候用UUID函数插入UUID。下面我用win10系统下的CMD命令行具体演示一下:

1、打开CMD,输入mysql -uroot -p命令连接mysql,如下图所示

2、通过create创建表,指定ID为varchar(36),并设置为主键,如下图所示

3、在插入数据的时候,调用uuid()函数往主键字段里插入uuid值,如下图所示

4、最后查询插入的数据就可以看到id主键列存放的是uuid类型了,如下图所示

修改数据库中表的id

思路:

1、首先搞清楚所有表的主外键关系

2、取消全部表的主键自增标识列,方便你后续的直接修改ID

例如:

exec sp_configure 'allow updates',1

reconfigure with override

GO

----取消标识列标记

update syscolumns set colstat = 0 where id = object_id('表名') and colstat = 1

GO

----恢复标识列标记

update syscolumns set colstat = 1 where id = object_id('表名') and name = '标识列名称'

3、写个SQL脚本,修改ID,在修改的时候,一并更新全部表里的此ID值

例如:

declare @old_id as int,@new_id as int

select @old_id=12,@new_id=123

update 表名1 set id=@new_id where id=@old_id

update 表名2 set id=@new_id where id=@old_id

update 表名3 set id=@new_id where id=@old_id

.....

update 表名n set id=@new_id where id=@old_id

mysql 中如何给已存在的表中字段增设置主键?

1、打开navicat工具,连接上mysql服务器,选择完数据库之后,选择一个表右击选择设计表(这里为了演示测试,随便选择一个表即可)。

2、在设计表页面,可以看到当前表的所有字段信息,我们选择的学生表有一个id字段,目前该表没有主键字段。

3、如图,在最后一列右击选择主键,即可将该字段设置为主键,也可以直接点击鼠标左键,可以快速添加和取消主键。

4、设置完主键之后,可以看到一把锁的标志,并且有一个1字,因为一个表可以给多个字段添加主键,则为联合主键,这样就显示为主键1,主键2等。

5、主键设置完成之后,还没有自增,选择id字段之后,在下方,如图,勾选自动递增,这样id在每次插入记录之后都会自增一个值。

6、设置完成主键和自增之后,点击保存,关闭当前窗口,然后选择表名右击选择对象信息。

7、在DLL页面中,可以看到刚刚添加的主键和自增的DLL语句,这里就是创建表的DLL语句。

8、上面有提到联合主键,其实一个表可以给多个字段设置主键,这样可以组成联合主键,对于特定的业务,联合主键也是必须的。


本文标题:mysql主键id怎么改,mysql如何设置主键
分享URL:http://cdweb.net/article/hcpgss.html