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

sql修改主键

发布时间: 2022-02-09 11:48:21

A. sql怎样用命令设置主键

我现在发现使用较少的语句也可以啦,比如:alter
tabler
badd
primary
key(id)将表b中的字段id设为主键这个方法和你的视觉上的效果是一样的,就是不晓得内部是否一样的。

B. 在sql中怎样设置主键语法

创建表

--------------------------------------------------------------------------------

CREATE TABLE TABLE_NAME(
column1 DATATYPE [NOT NULL] [PRIMARY KEY],
column2 DATATYPE [NOT NULL],
...
[constraint <约束名> 约束类型 (要约束的字段名)... ]
);
说明:
TABLE_NAME --表名.
column1,column2 --列的名称 不能取关键字
DATATYPE --是Oracle的数据类型,可以查看附录.
NOT NULL /NULL --不可以/可以允许资料有空的.NULL一般省略.
PRIMARY KEY --是本表的主键。
CONSTRAINT --是对表里的字段添加约束.(约束类型有 Check,Unique,Primary key,not null,Foreign key)。

示例:
CREATE TABLE student(
s_id number(8) PRIMARY KEY,
s_name varchar2(20) NOT NULL,
s_sex varchar2(8) ,
clsid number(8) ,
CONSTRAINT u_1 UNIQUE(s_name),
CONSTRAINT c_1 CHECK (s_sex in ('MALE','FEMALE'))
);

表级约束
如 设置 两列不能同时为空
ALTER TABLE tablename ADD CONSTRAINT check_name CHECK (col1 is not null or col2 is not null) ;

复制表

--------------------------------------------------------------------------------

CREATE TABLE TABLE as <SELECT 语句>

(需注意的是复制表不能复制表的约束);

示例:
CREATE TABLE test AS SELECT * FROM emp;
会将表emp的数据一并复制到test中,但约束没有复制.

如果只复制表的结构不复制表的数据则:
CREATE TABLE test as (SELECT * FROM emp WHERE 1=2);
或者
CREATE TABLE test as (SELECT * FROM emp WHERE FALSE);

C. sql,怎么修改主键(原主键未知)

不用删除,直接就是修改。alter table....

D. SQL表主键可不可以修改update

ifobject_id('primarytbl')isnotnull
droptableprimarytbl
go

--建主表
createtableprimarytbl
(
IDintprimarykey,--主键
aaint,
bbint,
ccint
)
go

ifobject_id('foreigntbl')isnotnull
droptableforeigntbl
go

--建外表
createtableforeigntbl
(
IDintprimarykey,--主键
aaint
(ID)--建立外键
onupdatecascade,--更新级联
ddint,
eeint
)
go

--插入主表数据
insertintoprimarytbl
select1,1,2,3unionall
select2,2,3,4unionall
select3,3,4,5unionall
select4,4,5,6unionall
select5,5,6,7unionall
select6,6,7,8
go

--插入外表数据
insertintoforeigntbl
select1,1,2,2unionall
select2,1,3,3unionall
select3,2,4,4unionall
select4,2,4,4unionall
select5,2,5,5unionall
select6,3,6,6unionall
select7,4,7,7
go

--显示主外表信息
select*
fromprimarytbl

select*
fromforeigntbl
go
--primarytbl
/*
IDaabbcc
--------------------------------------------
1123
2234
3345
4456
5567
6678
--foreigntbl
IDaaddee
--------------------------------------------
1122
2133
3244
4244
5255
6366
7477
*/

--更新主表主键
updateprimarytbl
setID=8
whereID=1
go

--结果
select*
fromprimarytbl

select*
fromforeigntbl
go

/*
--primarytbl
IDaabbcc
--------------------------------------------
2234
3345
4456
5567
6678
8123
--foreigntbl
IDaaddee
--------------------------------------------
1822
2833
3244
4244
5255
6366
7477
*/

droptableforeigntbl
droptableprimarytbl

E. SQL语句如何修改主键字段的字段类型类型

首先,修改主键字段的字段类型,肯定是要先删除主键才能操作的
--【1.查找主键】
--SQLSERVER
select name as pkName from dbo.sysobjects where xtype='PK' and parent_obj=(select id from dbo.sysobjects where name='表名')
--ORACLE
SELECT CONSTRAINT_NAME FROM USER_CONSTRAINTS WHERE TABLE_NAME = UPPER('表名') AND CONSTRAINT_TYPE ='P'
--【2.删除主键约束】
ALTER TABLE 表名 DROP CONSTRAINT 约束名
--ORACLE
--删除主键连同索引
ALTER TABLE 表名 DROP CONSTRAINT 约束名 CASCADE DROP INDEX;
或者
ALTER TABLE 表名 DROP PRIMARY KEY CASCADE DROP INDEX;--【3.修改字段】
--【先把这一列的值备份到临时列里,再把这一列update成null,再修改类型,再把数据拷贝回来】
--SQLSERVER
--默认值单独处理,关联约束
--默认值的变更涉及到约束,如有约束,需要先查询出越是再进行删除
ALTER TABLE 表名 DROP CONSTRAINT 约束名
ALTER TABLE 表名 ALTER COLUMN 字段名 字段类型(长度精度) 是否为空
ALTER TABLE 表名 ADD CONSTRAINT 约束名 DEFAULT 默认值 FOR 字段名
--ORACLE
--删除默认值:default null
ALTER TABLE 表名 MODIFY COLUMN 字段名 VARCHAR2(20) DEFAULT ' ' NOT NULL--【4.新增主键】
--指定主键名字
ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY (F1,F2);
--未指定主键名字
ALTER TABLE 表名 ADD PRIMARY KEY (F1,F2)

F. SQL中主键列能修改吗

如果表之前有主键则先删除:
alter table 表名 drop constraint 主键名
修改主键:
alter table 表名 add constraint 主键名 primary key (column1,column2,....,column)
注意:这里的主键名是自己定义的一个字符串,可以不是表中字段名(习惯写成:PK_表名 的格式),不过要牢记啊,删除的时候用到的也是这个名!括号中的才是表中存在的字段。

G. 请问如何修改SQL主键列的值

: "可以改,用update 就行,但是要避免主键值和表中现有数据冲突。 另,如果有其它表用该表主键做外键的话,也不能随便修改主键值"

H. 如何更改SQL数据库中的主键数据

主键就是用来标识每条记录的,它必须具有唯1性,同时它也具有唯1聚集索引的功能,方便查找记录,用主键查找记录是最高效的,但是主键不1定是单唯一列,可以由多列共同组成主键

I. sql --表建好后,想改主键.用sql语句怎样写

分2步,先删除原来的,再建新的
1、ALTER TABLE table_name DROP PRIMARY KEY (id)
说明:把主键的定义删除。
ALTER TABLE table_name ADD PRIMARY KEY (no)
说明:更改表得的定义把no设为主键。

J. sql语句如何修改主键,请举个小例子.

补充2:我找到了约束名,已经删除,但在添加的时候又出问题了,意思说不能在可以为空的字段上创建primary key约束,那么应该怎样改?????????

你修改的为主键的列 以前在建表的时候默认是可以NULL的,你把DEFAULT NULL
或者把表结构上的对应列的NULL的勾去掉就可以加主键了

不能在可以为空的字段上创建primary key约束的。。