alter-table相关内容

SQL Server 将自动增量主键添加到现有表

作为标题,我有一个现有的表,它已经填充了 150000 条记录.我添加了一个 Id 列(当前为空). 我假设我可以运行查询以使用增量数字填充此列,然后设置为主键并打开自动增量.这是正确的方法吗?如果是这样,我该如何填写初始数字? 解决方案 不 - 你必须反其道而行之:从一开始就将其添加为 INT IDENTITY - 它将是执行此操作时填充标识值: ALTER TABLE dbo. ..
发布时间:2022-01-31 17:32:30 数据库

mysql:遍历表并更改表添加索引

我有 ~1000 个以相同前缀开头的表:table_prefix_{SOME_ID}(我可以从另一个表中获取 id) 在 mysql 中循环 所有 表并执行以下操作的快速方法是什么: ALTER TABLE `table_prefix_{some_id}` ADD INDEX `fields` (`field`) 解决方案 忘记循环.只需这样做: select concat('al ..
发布时间:2022-01-24 12:12:29 数据库

MySQL - 如何更新小数列以允许更多位数?

我是 MySQL 的初学者,我不小心创建了一个表,其中包含一个名为 的列 (价格小数(2,2)); 它需要是 decimal(4,2) 以允许 4 位数字.既然我已经创建了它,那么将该十进制值更新为 decimal(4,2) 的最简单方法是什么?还是我需要完全删除该列,然后用正确的数字重新创建它? 解决方案 ALTER TABLE mytable MODIFY COLUMN myco ..
发布时间:2022-01-17 20:54:16 数据库

Hive 更改表更改列名

我正在尝试重命名 Hive 中的 columnName.有没有办法在 Hive 中重命名列名. tableA (column1,_c1,_c2)到表A(列1,列2,列3)?? 解决方案 更改列名称/类型/位置/评论: ALTER TABLE table_name CHANGE [COLUMN] col_old_name col_new_name column_type [COM ..
发布时间:2021-12-28 23:33:53 其他开发

在 Oracle 中的关键字后更改表

ALTER TABLE testTable ADD column1 NUMBER(1) DEFAULT 0 NOT NULL AFTER column2; 为什么我也不能在 Oracle 中使用 mySql 语法?上述命令适用于 MySql.你能给我一个有效的等价物吗? 错误报告:SQL 错误:ORA-01735:无效的 ALTER TABLE 选项01735. 00000 - “无效的 AL ..
发布时间:2021-11-27 08:41:14 数据库

SQL Server - 将数据库列从 varchar 更新为 nvarchar(如果还不是 nvarchar)的脚本

我必须使用脚本将现有数据库结构从 varchar 更新为 nvarchar.由于每次运行配置应用程序时都会运行此脚本,因此我宁愿确定列是否已更改为 nvarchar,而不是对表执行更改.我必须支持的数据库是 SQL Server 2000、2005 和 2008. 解决方案 以下查询应该可以满足您的需求: 如果存在(选择 *FROM sysobjects syo加入 syscolumns ..
发布时间:2021-11-27 08:41:05 数据库

我可以在 SQL Server 的添加列语句中创建命名默认约束吗?

在 SQL Server 中,我在表中有一个新列: ALTER TABLE t_tableName添加新列非空 这失败了,因为我在没有指定默认约束的情况下指定了 NOT NULL.该表不应具有默认约束. 为了解决这个问题,我可以使用默认约束创建表,然后将其删除. 但是,似乎没有任何方法可以指定默认约束应命名为该语句的一部分,因此我摆脱它的唯一方法是使用存储过程在sys.defaul ..
发布时间:2021-11-27 08:40:41 数据库

如何在 SQL Server 中重命名表?

我使用的 SQL 查询是: ALTER TABLE oldtable RENAME TO newtable; 但是,它给了我一个错误. 服务器:消息 156,级别 15,状态 1,第 1 行 关键字“TO"附近的语法不正确. 解决方案 要在 SQL Server 中重命名表,请使用 sp_rename 命令: exec sp_rename 'schema.old_table_ ..
发布时间:2021-11-27 08:40:32 数据库

在现有 MYSQL 数据库中使用 Alter Table 添加外键时出现问题 - 无法添加!帮助!

我有一个生产数据库,我在其中重命名了几个作为外键的列.显然,根据我的经验,mysql 使这变得非常痛苦. 我的解决方案是删除所有索引和外键,重命名id列,然后重新添加索引和外键. 这在用于开发数据库的 windows 上的 mysql 5.1 上效果很好. 我去我的 debian 服务器上运行我的迁移脚本,它也使用 mysql 5.1,它给出了以下错误: mysql>更改表`c ..

向现有 SQLite 表添加约束

我正在使用 SQLite,它不支持添加 约束到现有表. 所以我不能做这样的事情(仅作为示例): ALTER TABLE [客户]添加约束指定_either_phone_or_email检查(([电话] 不为空)或([电子邮件] 不为空)); 这种情况有什么解决方法吗? 我知道: 我可以为新表添加约束,但它不是新的(它是由我的 ORM、EF Core 生成的) 我可以进行“表 ..

在 ALTER TABLE -- mysql 之前检查列是否存在

有没有办法在 ALTER TABLE ADD coumn_name 语句运行之前(或运行时)检查 mySQL 数据库中是否存在列?类似于 IF 列不存在 ALTER TABLE 的东西. 我已经尝试了 ALTER IGNORE TABLE my_table ADD my_column 但如果我添加的列已经存在,这仍然会引发错误. 编辑:用例是升级已安装的网络应用程序中的表 - 为了简单 ..
发布时间:2021-11-27 08:39:56 数据库

如何更改超过 1 列的表列数据类型?

例如: ALTER TABLE webstore.Store MODIFY COLUMN (短名称 VARCHAR(100),UrlShort VARCHAR(100)); 但是上面的方法不起作用.我正在使用 MySql 5.x 解决方案 ALTER TABLE 可以在一条语句中进行多张表的更改,但是MODIFY COLUMN 一次只能对一列起作用,所以需要指定MODIFY COLUM ..
发布时间:2021-11-27 08:39:45 数据库

MySQL的alter table查询速度很慢

为什么简单地更新这个表添加一列需要一个多小时?该表有 1500 万行.它有 2 个索引和一个单键主键.ALTER TABLE 查询现在已处于“复制到 tmp 表"状态 1 小时 15 分钟. ALTER TABLE `frugg`.`item_catalog_map`添加列 `conversion_url` TEXT NULL DEFAULT NULL 表格: mysql>描述 item_c ..
发布时间:2021-11-27 08:39:35 数据库

ALTER TABLE my_table ADD @column INT

如果我想使用一个变量作为新列的名称,这在 MS SQL 中可行吗? 不起作用的例子: ALTER TABLE my_table ADD @column INT 这对我很有用: EXEC ('ALTER TABLE my_table ADD' + @column + 'INT') 解决方案 这可以使用动态 sql 构建您的 DDL 并使用 EXEC 命令执行字符串. 声明@SQL ..
发布时间:2021-11-27 08:39:25 数据库

MySQL:如果列不存在,如何添加?

我想向表中添加一列,但如果它已经添加到表中,我不希望它失败.我怎样才能做到这一点? # 添加列如果已经存在则失败ALTER TABLE `TableName` ADD `ColumnName` int(1) NOT NULL default '0'; 解决方案 在存储过程中使用以下内容: IF NOT EXISTS( SELECT NULL来自 INFORMATION_SCHEMA.COL ..
发布时间:2021-11-27 08:39:13 数据库