精华内容
下载资源
问答
  • 总结: SQLserver想要修改主键的数据类型如果有外键 那么删除主键与外键的约束修改主键的数据类型 添加此表主键约束 如果外键也是另一个表的主键 那么继续删除此表主键的约束 修改此column的数据类型 添加此表主键...

    总结: SQLserver想要修改主键的数据类型

    如果有外键 那么删除主键与外键的约束

    修改主键的数据类型 添加此表主键约束 如果外键也是另一个表的主键 那么继续删除此表主键的约束 修改此column的数据类型 添加此表主键约束  添加外键约束

    if(A.column = A.primarykey){

    if(A.column = B.foreignkey)

    {

    drop constraint A.primarykey

    drop constraint B.foreignkey

    alter A.column

    add constraint A.primarykey

    if(A.column = B.primarykey){

    drop constraint B.primarykey

    alter B.column

    add constraint B.primarykey

    add constraint B.foreignkey

    }

    }

    else{

    drop constraint A.primarykey

    alter A.column

    add constraint A.primarykey

    }

    }

    查看表的外键约束代码

    SELECT name

    FROM sys.foreign_key_columns f

    JOIN sys.objects o

    ON f.constraint_object_id = o.object_id

    WHERE f.parent_object_id = OBJECT_ID('表名');

    例子:

    将主键Sno的类型改为char(11)

    fdd3f9bf541202d4e4d2ea7ed5717e42.png

    fe69248b2d495a07c94bea630af4ab47.png

    36a675d8f13044ee3c59782ea74e7f33.png

    先删除外键 再修改主键类型 然后添加外键

    alter table Student

    drop constraint PK_Student       //这个是主键约束

    alter table SC

    drop constraint FK__SC__Sno__3F466844   //这个是外键约束  在另一个表SC 中

    b39e754c5cc5ee641a7141ba4abb48be.png

    FK__SC__Sno__3F466844经过查询外键已经被删除

    接下来修改主键数据类型

    2a655a58b86ed489f8a81f7ef6450f2e.png

    469136d0f4792aa2d3ccd369b64334a7.png

    主键类型修改成功, 但是现在已经不是主键了,所以接下来添加主键约束

    4f19c573deee1a7c11b4d7aac0768671.png

    24640826e594f1a911bcdcee3548602b.png

    测试一下结果在有主键约束的条件下也不能修改主键类型  好麻烦啊  (纯测试用)

    ea782f01060725127fc56671bbb77ecd.png

    96537a77cb5552035e00ee027fb03f62.png

    所以接下来修改外键类型时 因为外键在SC表中也是主键 所以同样主外键约束都要删除 然后修改再添加

    删除SC的主键约束 然后修改类型 添加类型

    bcb675069922993098a845736dd44529.png

    修改主键类型

    44b2ce42271433192eeedf9892e0a88f.png

    添加主键约束

    c08accdbb26d7989d481fab91f5b8ef7.png

    057c8500f93919559d727460a661f4bc.png

    然后添加外键约束

    400dd0c12a34e79a8d4d83b1f4f8c481.png

    成功!

    展开全文
  • 在oracle中,修改主键

    2021-05-06 02:21:51
    --3、修改主键--第一步:增加列key_noalter table TB_ZHAOZHENLONG add key_no int;--第二部:给key_no更新值update TB_ZHAOZHENLONG set key_no =rownum;commit;--第三步:将key_no置为非空alter table TB_...

    --3、修改主键

    --第一步:增加列key_no

    alter table TB_ZHAOZHENLONG add key_no int;

    --第二部:给key_no更新值

    update TB_ZHAOZHENLONG set key_no =rownum;

    commit;

    --第三步:将key_no置为非空

    alter table TB_ZHAOZHENLONG   modify key_no   int   not null;

    --第四步:查找主键

    select    constraint_name from    user_constraints where constraint_type='P' and   owner=user    and    table_name='TB_ZHAOZHENLONG' ;

    --第五步:删除主键

    ALTER TABLE TB_ZHAOZHENLONG DROP CONSTRAINT PK_TB_ZHAOZHENLONG;

    --第六步:增加主键

    ALTER TABLE TB_ZHAOZHENLONG ADD (CONSTRAINT PK_TB_ZHAOZHENLONG PRIMARY KEY(c_1,c_2,c_3);

    展开全文
  • alter table table1 add id int unsigned not null auto_increment primary key修改某个表的字段类型及指定为空或非空alter table 表名称 change 字段名称 字段名称 字段类型 [是否允许非空];a...

    添加表字段

    alter table table1 add transactor varchar(10) not null;

    alter table table1 add id int unsigned not null auto_increment primary key

    修改某个表的字段类型及指定为空或非空

    alter table 表名称 change 字段名称 字段名称 字段类型 [是否允许非空];

    alter table 表名称 modify 字段名称 字段类型 [是否允许非空];

    alter table 表名称 modify 字段名称 字段类型 [是否允许非空];

    修改某个表的字段名称及指定为空或非空

    alter table 表名称 change 字段原名称 字段新名称 字段类型 [是否允许非空

    删除某一字段

    alter table mytable drop 字段 名;

    添加唯一键

    alter table `test2` add unique ( `userid`)

    修改主键

    alter table `test2` drop primary key ,add primary key ( `id` )

    增加索引

    alter table `test2` add index ( `id` )

    alter table `category ` modify column `id` int(11) not null auto_increment first ,add primary key (`id`);

    修改主键的sql语句块如下

    mailbox 表新增字段

    drop procedure if exists mailbox_column_update;

    create procedure mailbox_column_update() begin

    -- 新增删除标志列

    if not exists(select 1 from information_schema.columns where table_schema='cbs' and table_name='mailbox' and column_name='delete_flag') then

    alter table mailbox add delete_flag int default 2 not null;

    end if;

    -- 新增删除日期列

    if not exists(select 1 from information_schema.columns where table_schema='cbs' and table_name='mailbox' and column_name='delete_date') then

    alter table mailbox add delete_date int default 0 not null;

    end if;

    -- 如果存在字段account_mail,则修改字段长度

    if exists(select 1 from information_schema.columns where table_schema='cbs' and table_name='mailbox' and column_name='email_account')

    then

    alter table mailbox modify column email_account varchar(320);

    end if;

    -- 如果不存在主键列,则设置双主键

    if ((select count(*) from information_schema.key_column_usage where table_schema ='cbs' and table_name='mailbox' and constraint_name ='primary' and (column_name ='email_account' or column_name = 'company_id'))=0)then

    alter table mailbox add primary key (company_id,email_account);

    -- 如果只存在一个主键列

    elseif ((select count(*) from information_schema.key_column_usage where table_schema ='cbs' and table_name='mailbox' and constraint_name ='primary' and (column_name ='email_account' or column_name = 'company_id'))<2)then

    alter table mailbox drop primary key,add primary key (company_id,email_account);

    end if;

    end;

    call mailbox_column_update();

    drop procedure if exists mailbox_column_update;

    补充:mysql 修改主键自增,新增联合主键

    alter table `onduty_history`

    modify column `id` int(11) not null auto_increment first ,

    modify column `name` varchar(50) character set utf8 collate utf8_general_ci not null after `id`,

    modify column `onduty_date` datetime not null after `name`,

    add unique key (`id`),

    add primary key (`name`, `onduty_date`);

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持萬仟网。如有错误或未考虑完全的地方,望不吝赐教。

    如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

    展开全文
  • sqlserver修改主键为自增 先删除id字段,执行下面sql即可: alter table xx add id int IDENTITY (1,1) PRIMARY KEY

    sqlserver修改主键为自增

    先删除id字段, 执行下面sql即可,不用担心id的数据没有,会自动赋值好,假如之前的id是不规则的,id在其他表不充当外键可以这样:

    alter table xx add  id int IDENTITY (1,1) PRIMARY KEY
    展开全文
  • mysql 修改主键

    2021-03-15 03:13:23
    mysql 修改主键2018-09-19 09:34阅读数 12ALTER TABLE `test2` DROP PRIMARY KEY ,ADD PRIMARY KEY ( `id` )重设主键字段有时数据库操作时需要将一个主键修改为联合主键或者把主键改为其他列,这时候单纯的add ...
  • 外键就是跟其他表联系的字段 ,还是比如有一张学生表 还有一张选课表,这个时候要修改学生表中的学号 ,选课表里对应的就也得变,这样就需要给选课表加学号作为外键约束,这样当你修改学号时 所有外键关联的就都改...
  • 错误Error on rename of … errno: 150 – Foreign key constraint is incorrectly formed)因为您尝试删除引用的主键,即使您使用SET FOREIGN_KEY_CHECKS = 0禁用外键约束检查,也会发生这种情况;...更改已被其他表...
  • orcale修改主键 orcale主键无法修改,可以通过先删除再添加完成修改 首先查询表中的主键 select * from user_cons_conlumns c where c.table_name='tablename'; 查询到该表主键之后,确定要删除的主键名称 执行...
  • 摘自:HUBDOG大虾的葵花宝典通常,你完成此项任务时使用 TBatchMove 构件。但 TBatchMove 也有不合适的情况:- 你并不希望拷贝所有的记录,也不想使用过滤器。- 你希望用到目的 DataSet 的有效事件(如 BeforPost,...
  • Oracle修改主键

    2021-05-01 07:41:50
    1、Oracle在已经存在主键的表中插入复合主键的SQL语句如已有一个表test_key,其中a1列为主键。CREATE TABLE TEST_KEY(A1 VARCHAR2(3) NOT NULL,A2 VARCHAR2(3),B1 VARCHAR2(3),B2 VARCHAR2(3));alter table TEST_KEY...
  • mysql修改添加主键的方法:执行【ALTER TABLE `test2` DROP PRIMARY KEY ,ADD PRIMARY KEY ( `id` );】语句即可修改主键。添加表字段alter table table1 add transactor varchar(10) not Null;alter table table1 ...
  • SQL 修改主键信息

    2021-07-03 11:18:46
    -- Parent_Obj 代表父级id为abcd 且 参数是主键约束 print @Pk -- 输出Pk变量的值 if @Pk is not null begin exec('Alter table abcd Drop '+ @Pk) --执行动态语句删除原主键 end alter table abcd alter column c ...
  • PowerDesigner批量修改主键、外键名称 使用方式: 打开需要导出的pdm,然后按快捷键:ctrl + shift +x 拷贝以下代码,点击Run(F5),开始递归目录,稍等片刻弹出提示及完成操作。 命名格式: 主键:PK_TableName ...
  • Sql语句更改字段类型及主键等实用整理挖客webmaster 发表于2008-6-1 15:45:56 来源:原创您现在正在浏览:首页 »Mssql数据库教程 评论如果数据量非常大,达到几百万条记录以上,使用企业管理器来更改字段类型,很...
  • use DBName;GOALTER TABLE dailyTopicsReportLogCalc DROP constraint [PK_dailyTopicsReportLogCalc]ALTER TABLE dailyTopicsReportLogCalc ALTER COLUMN sequenceNo BIGINTALTER TABLE dailyTopicsReportLogCalc A...
  • mysql 插入数据唯一键冲突前提: 修改数据三种可用的方法解决主键冲突的问题1. insert into ... on duplicate key update set ...2. update ... set = case key when ... then ... when ... then ... else end where ...
  • //主键alter table tabelname add new_field_id int(5) unsigned default 0 not null auto_increment ,add primary key (new_field_id);//增加一个新列alter table t2 add d timestamp;alter table infos add ex ...
  • 设置MySQL数据表主键

    千次阅读 2021-01-28 00:39:07
    设置MySQL数据表主键:使用“primary key”关键字创建主键数据列。被设置为主键列不允许出现重复的值,很多情况下与“auto_increment”递增数字相结合。如下SQL语句所示:Mysql>createtablebooks(bookidint(11)...
  • *代表mall数据库下所有的table 做相应的修改就能改变权限 设置MySQL的主键自增长 alter table mall_user change column user_id user_id int primary key auto_increment; 如果提示 Multiple primary key defined 则...
  • 修改一个已经存有数据的表的主键,又不想影响原有数据。 通常有如下做法1.当 主键无命名create table t2 (id integer primary key,status varchar(10),last_modified date default sysdate);select * from t2;查看...
  • mysql改变主键属性的方法:1、使用关键字modify,代码为【alter table tbl_name modify.....】;2、使用关键字change,代码为【alter table tbl_name change..】。本教程操作环境:windows7系统、mysql8.0.22版,该...
  • 所谓的复合主键 就是指你表的主键含有一个以上的字段组成,不使用无业务含义的自增id作为主键。比如create table test(name varchar(19),id number,value varchar(10),primary key (name,id))上面的name和id字段组合...
  • 问题描述:例如我们已经在数据库中建好了一张表,该表中存在主键id并且设置为自动增长类型,由于一次操作,我们在表中插入了一些数据,但是这些数据是错误的,因此我们需要删除这些数据,但是会发现这时的主键ID的...
  • mysql修改主键

    2021-02-10 15:42:43
    SHOW INDEXES FROM tab_name ALTER TABLE users2 DROP INDEX index_name
  • 主键的设置方法有3种:一种是设置自增长主键,第二种是采用业务主键,第三种是生成唯一序列(使用uuid/guid);如何选择主键设置方式:1.主键的使用目的:a.为了保证数据查找唯一;b.提高存储效率和索引效率。2.使用自增...
  • alter table table1 add id int unsigned not Null auto_increment primary key修改某个表的字段类型及指定为空或非空alter table 表名称 change 字段名称 字段名称 字段类型 [是否允许非空];a...
  • I need to merge parallel tables from 2 different schemas. They are practically the same (some fields are different), but the IDs (their PKs) are different.I need to conform one table to contain the sa...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 345,858
精华内容 138,343
关键字:

修改主键

友情链接: C++邮件系统.rar