mysql数据库如何修改某一列主键的属性,让其自动增长,如下图,怎么修改才可以

mysql数据库如何修改某一列主键的属性,让其自动增长,如下图,怎么修改才可以,第1张

如果表之前有主键则先删除:

alter table 表名 drop constraint 主键名

修改主键:

alter table 表名 add constraint 主键名 primary key (column1,column2,,column)

alter table t1 drop column c1

alter table t1 add column c1int identity

1使用sql语句创建

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

use master -- 设置当前数据库为master,以便访问sysdatabases表goif exists(select from sysdatabases where name='stuDB')--检查是否存在drop database stuDB--存在就删除go

create database stuDB --创建数据库

on primary -- 默认就属于primary文件组,可省略

(

/--数据文件的具体描述--/

name='stuDB_data', -- 主数据文件的逻辑名称

filename='D:\stuDB_datamdf', -- 主数据文件的物理名称

size=5mb, --主数据文件的初始大小

maxsize=100mb, -- 主数据文件增长的最大值

filegrowth=15%--主数据文件的增长率

)

log on

(

/--日志文件的具体描述,各参数含义同上--/

name='stuDB_log',

filename='D:\stuDB_logldf',

size=2mb,

filegrowth=1mb

)

go

2使用SQL Server Management Studio新建数据库

21 登录SQL Server Management Studio

22 右击左侧菜单栏中的数据库项

23 在出现的右键菜单上以鼠标左键点击新建数据库

24 在出现的窗口中输入数据库名称并选择文件位置

25 点击确定

建表相关

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

use StuDB

go

if exists(select from sysobjects where name='stuMarks')

drop table stuMarks

create table stuMarks

(

ExamNo int identity(1,1) primary key,

stuNo char(6) not null,

writtenExam int not null,

LabExam int not null

)

go

-- 其中,列属性"identity(起始值,递增量)" 表示"ExamNo"列为自动编号, 也称为标识列

alter table 表名

add constraint 约束名 约束类型 具体的约束说明

alter table 表名

drop constraint 约束名

alter table stuMarks

add constraint UQ_stuNo Unique(stuNo)

alter table stuMarks

drop constraint UQ_stuNo

/--添加SQL登录账户--/

exec sp_addlogin 'xie', '123456' -- 账户名为xie,密码为123456

--删除xie账户名

exec sp_droplogin 'xie'

/--在stuDB数据库中添加两个用户(必须存在)--/

use stuDB

go

exec sp_grantdbaccess 'xie','123456'

go

-- 提示:SQL Server 中的dbo用户是具有在数据库中执行所有活动权限的用户,表示数据库的所有者(owner),一般来说,

-- 如果创建了某个数据库,就是该数据库的所有者,即dbo用户,dbo用户是一个比较特殊的数据库用户,无法删除,且此用

-- 户始终出现在每个数据库中

/ --给数据库用户授权-- /

-- 授权的语法如下

-- grant 权限 [on 表名] to 数据库用户

use stuDB

go

grant select,update,insert on stuMarks to xie

grant create table to xie

go

我知道一个方法,可能比较笨。

先查询一次数据库SELECT FROM TABLE

rsgetString("IDENTITY_INSERT"); // rs是结果集对象。

这条语句需要try{ }

如果没有这个字段就会报Exception

以下是我建立的一个表的语句:

-- Create table

create table kongxianji537(

LOGDATE DATE,

DEALSTAFF VARCHAR2(20),

ACTIONTYPE_GJ VARCHAR2(20),

YEAR VARCHAR2(20),

MONTH VARCHAR2(20),

DAY VARCHAR2(20),

NUM NUMBER

)

tablespace SERVICE_MAIN_DAT

pctfree 10

pctused 40

initrans 1

maxtrans 255

storage

(

initial 1M

next 1M

minextents 1

maxextents unlimited

pctincrease 0

);

其中:

storage

(

initial 1M

next 1M

minextents 1

maxextents unlimited

pctincrease 0

);

部分为设置列属性的自动增加,基数和步长,initial 1M属性表示基数是1M,next 1M属性表示每次以1M的步长增加,minextents 1,maxextents unlimited,表示自动增加

SQL Server自增字段可以在SQL Server Management Studio或使用SQL语句在程序或者查询分析器里面实现,将为您分别说明。

一、在SQL Server Management Studio中实现SQL Server自增字段

打开SQL Server Management Studio,打开数据库之后,在选中的表上点“修改”,在选中需要设置为自增的字段,在右下方的表设计器里选择“标识规范”,选“是”,就设定好了。

二、使用SQL语句在程序或者查询分析器里面实现SQL Server自增字段

sql server 设置自增字段identity属性 (以新建数据表tablename中的id字段为例)

create table tablename

(

id int identity(1,1)

)

这样设置之后,tablename数据表中的id字段就是自增列。

如果想实现带前缀或者后缀的自动增加字段,不能用varchar,还是使用上面的方法创建字段,但是在读取的时候用增加前后缀的形式来显示想要的效果,例如如果你希望得出结果是a001可以这么做select 'a'+convert(varchar(20),id) from tablename,这里的tablename是你建立的具体的表明。

identity是定义此列为标识列的意思,括号中的第一个one指的是标识从1开始,第二个one指的是以1的增量递增。

如果不明白什么是标识列,请参见这里:

>

以上就是关于mysql数据库如何修改某一列主键的属性,让其自动增长,如下图,怎么修改才可以全部的内容,包括:mysql数据库如何修改某一列主键的属性,让其自动增长,如下图,怎么修改才可以、怎样使用SQL SERVER新建立一个数据库、java如何得到数据库表是否有IDENTITY_INSERT属性(标识属性)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存