当前位置:首页 » 编程语言 » sql怎么设置不更新主键
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql怎么设置不更新主键

发布时间: 2023-01-02 11:50:37

‘壹’ sql 我想问问,我想让主键不递增,sql语句应该怎么写

不用写,有个手动的点一下就行了,是自动递增1的
选择了主键那行,看下面就有设置

‘贰’ sql怎么设置主键

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);
前提是原来表中没有设置主键,若原先已有主键则会报错。

‘叁’ SQL怎样用命令设置主键

可以参考下面的方法:

建表的时候,可以直接在列名后面增加主键约束,比如:

IDchar(5)primarykey。

对已经建表的列增加主键约束:

alter table 表名addconstraint约束名 primary key (ID)

(3)sql怎么设置不更新主键扩展阅读:

sql语句

添加主键

Alter table tabname add primary key(col)

删除主键

Alter table tabname drop primary key(col)

创建索引

create [unique] index idxname on tabname(col….)

删除索引

drop index idxname

‘肆’ SQL数据库没有主键,如何进行更新,删除呢 有什么方法吗

可以用SQL语句,也可以用开发工具中数据集控件的方法。
用SQL语句:
更新:update 表名 set 字段名=字段值,... where 筛选条件
删除:delete 表名 where 筛选条件

‘伍’ 在SQL SERVER 中对表不能设置主键

数据库主键是指表中一个列或者列的组合,其值能够唯一的标识表中的每一个行。这样的一列或者多列成为表的主键,通过它可以强制表的实体完整性。当创建或者更改表时可以通过定义PRIMARY KEY约束来创建主键,一个表只能有一个主键约束,而且主键约束中的列不能是空值,由于主键约束确保唯一数据,所一经常来定义标识列。
主键的作用 1、 主键是用于唯一标识数据库表中一行数据的。2、 作为一个可以被外键有效引用的对象。
主键的设计原则 1、 主键应当是对用户没有意义的,比如说用户登陆一个系统的时候的登录id;而这种情况就不可能了:“学生表”需要支持这样的需求“学生注销后,可以重新激活自己的信息,而且还要保持自己的号码跟原来的一直”,这样的话主键就不能满足要求了。2、 唯一性。3、 非空性:主键的值是不可重复的,也不可以为空。4、尽量不要更新主键。实际上,因为主键除了惟一地标识一行之外,再没有其他的用途了,所以也就没有理由去对它更新。如果主键需要更新,则说明主键应对用户无意义的原则被违反了。注意:这项原则对于那些经常需要在数据转换或多数据库合并时进行数据整理的数据并不适用。5、主键不应包含动态变化的数据,如时间戳、创建时间列、修改时间列等。6、主键应当有计算机自动生成。如果由人来对主键的创建进行干预,就会使它带有除了惟一标识一行以外的意义。一旦越过这个界限,就可能产生认为修改主键的动机,这样,这种系统用来链接记录行、管理记录行的关键手段就会落入不了解数据库设计的人的手中。
创建主键--在创建表时就可以对字段加上约束:
create table Student(StudentNo int PRIMARY KEY IDENTITY(1,1), --加主键约束,还有标识列属性(两者构成实体完整性)StudentName nvarchar(15) not null, --加非空约束,不加"not null" 默认为:可以为空StudentSchool text(20) FOREIGN KEY REFERENCES SchoolTable(SchoolName), --加外键约束,格式:FOREIGN KEY REFERENCES 关联的表名(字段名)StudentAge int DEFAULT ((0)), --加默认值约束StudentSex nvarchar(2) CHECK(StudentSex=N'男' or StudentSex=N'女') --加检查约束,格式:check (条件表达式))

‘陆’ sql添加外主键约束为什么不更新修改

--我也是初学者,共同研究下,你最好一段一段执行,要不就没意义了
use school
drop table teacher1
drop table student1
go
create table teacher1
(
t_id int primary key,
t_name nvarchar(10) not null
)
go
insert into teacher1 values(1347,'张三')
insert into teacher1 values(2680,'李四')
insert into teacher1 values(6379,'王五')
go
create table student1
(
s_id int primary key,
t_id int
)
go
alter table student1
add constraint FK foreign key(t_id) references teacher1(t_id) on update cascade
insert into student1 values(1,2680)
insert into student1 values(2,6379)
insert into student1 values(3,1347)
insert into student1 values(4,6379)
insert into student1 values(5,1347)
--两个表建好了,大概按照你的意思,不知道是不是这种情况
go
select * from student1;
select * from teacher1; --查询所有数据
go
--在student1表(外键表)中加入一组数据
insert into student1 values(6,1234) --失败了,因为外键表中外键的值必须是引用主键表中关联的主键的值
--也就是外键约束,或称参照完整性
--外键约束是约束外键的数据的取值的
insert into teacher1 values(1234,'童川') --然后在teacher1表(主键表)中加一组数据
--成功,外键约束对主键表被引用的主键无影响
insert into student1 values(6,1234) --成功,验证了失败的原因
go
select * from student1;
select * from teacher1; --再次查询所有数据
--on update cascade 这个东西我也没学过,网络了一下,大概明白了
go
update teacher1 set t_id = t_id + 10000
where t_name in('童川') --成功
update student1 set t_id = t_id + 10000 --提示与外键约束发生冲突
go
select * from student1;
select * from teacher1; --看到了么?学生表中引用'童川'老师的数据的一列数据中t_id的值也随之改变
--我想这就是on update cascade的作用
--主键的值改变后,引用它的外键的值也随之改变
--最后顺便一提,童川是我的室友,恶搞一下他,嘿嘿···

‘柒’ sql 中是否可以把主键重新设置为非主键

楼主,你好!这个还是要看你的一个实际情况来看的。比如,你刚开始写DDL语句时,那么可以直接改掉就可以了;但是从你的问题来看,应该是已经通过DDL语句生成数据库表了,并且很有可能在表中就已经存在数据了。如果是如我所描述的,那么可以按如下方式来处理:

  1. 把数据库做备份,不要在正式库中直接修改。

  2. 首先,要了解哪些应用程序的代码使用了这张表,并和这张表的这个主键字段相关联。

  3. 其次,确定这张表取消主键后,会设置哪个字段为主键字段?本来表中已经的记录中,这个字段的值是否重复?如果重复的话,那么就不能调整。如果不重复的话,就可以调整。

  4. 最后,直接用DDL语句ALTER TABLE 的约束来调整主键字段。

  5. 我只给你说了一个大致思路,具体操作还是需楼主自己动手。