alter-table相关内容

改变列:null 到 not null

我有一个表,其中有几个可为空的整数列.由于多种原因,这是不可取的,因此我希望将所有空值更新为 0,然后将这些列设置为 NOT NULL.除了将空值更改为 0 之外,还必须保留数据. 我正在寻找特定的 SQL 语法来将列(称为 ColumnA)更改为“not null".假设数据已更新为不包含空值. 使用SQL server 2000. 解决方案 首先,让所有当前的 NULL 值 ..
发布时间:2021-11-27 08:35:45 数据库

Rails:如何在 Ruby on Rails 迁移中重命名数据库列?

我错误地将列命名为 hased_pa​​ssword 而不是 hashed_pa​​ssword. 如何更新数据库架构,使用迁移重命名此列? 解决方案 rename_column :table, :old_column, :new_column 您可能需要创建一个单独的迁移来执行此操作.(根据需要重命名 FixColumnName.): 脚本/生成迁移 FixColumnName ..

如何重命名 SQLite 数据库表中的列?

我需要重命名 SQLite 数据库中某些表中的几列.我知道一个 类似的问题 之前在stackoverflow上有问过,不过一般是针对SQL的,没有提到SQLite的情况. 从 ALTER TABLE 的 SQLite 文档中,我认为不可能执行这样的操作事情“很容易"(即单个 ALTER TABLE 语句). 我想知道有人知道使用 SQLite 执行此类操作的通用 SQL 方式. ..
发布时间:2021-11-27 08:35:24 数据库

向现有列添加标识

我需要将表的主键更改为标识列,并且表中已经有许多行. 我有一个脚本来清理 ID,以确保它们从 1 开始是连续的,在我的测试数据库上运行良好. 更改列以具有标识属性的 SQL 命令是什么? 解决方案 您不能更改现有列的标识. 你有两个选择, 创建一个具有身份的新表 &删除现有表 创建一个带有标识 & 的新列删除现有列 方法 1.(新表)在这里您可以保留新创 ..
发布时间:2021-11-27 08:35:14 数据库

更改 MySQL 表以在列上添加注释

我一直在检查 MySQL ALTER TABLE 文档 并且它似乎不包括向列添加或修改注释的方法.我该怎么做? -- 用于表格ALTER TABLE myTable COMMENT 'Hello World'-- 对于列——??? 解决方案 尝试: ALTER TABLE `user` CHANGE `id` `id` INT( 11 ) COMMENT 'id of user' ..
发布时间:2021-11-20 22:46:03 数据库

在一个巨大的 MySQL 生产表上创建一个没有表锁定的索引

我需要在大约 5M 行的 MySQL 表上创建一个索引.它是一个生产表,如果我运行 CREATE INDEX 语句,我担心所有内容都会被完全阻塞... 有没有办法在不阻塞插入和选择的情况下创建索引? 只是想知道我不必停止,创建索引并重新启动我的系统! 解决方案 [2017] 更新:MySQL 5.6 支持在线索引更新 https://dev.mysql.com/doc/r ..
发布时间:2021-11-20 22:32:52 数据库

ALTER TABLE 添加复合主键

我有一个名为 provider 的表.我有三列名为person、place、thing.可以有重复的人、重复的地点和重复的事物,但永远不可能有重复的人地物组合. 如何使用这三列在 MySQL 中为该表添加复合主键? 解决方案 ALTER TABLE provider ADD PRIMARY KEY(person,place,thing); 如果主键已经存在,那么你想这样做 ALT ..
发布时间:2021-11-20 22:23:05 数据库

MySQL:如果列不存在则更改表

我有这个代码: ALTER TABLE `settings`添加列`multi_user` TINYINT(1) NOT NULL DEFAULT 1 而且我只想在此列不存在时更改此表. 我尝试了很多不同的方法,但没有任何效果: ALTER TABLE `settings`添加列如果不存在`multi_user` TINYINT(1) NOT NULL DEFAULT 1 与程序: ..
发布时间:2021-11-20 22:08:08 数据库

如何修改 MySQL 表中列的大小?

我创建了一个表,不小心将 varchar 长度设为 300 而不是 65353.我该如何解决? 一个例子将不胜感激. 解决方案 你试过了吗? ALTER TABLE 修改VARCHAR(65353); 这会将 col_name 的类型更改为 VARCHAR(65353) ..
发布时间:2021-11-20 22:01:25 数据库

在 MySQL 中的特定列之后添加多列

我需要向表中添加多列,但将列定位在之后名为lastname的列. 我已经试过了: ALTER TABLE `users` 添加列(`count` smallint(6) 不是 NULL,`log` varchar(12) 非空,`status` int(10) 无符号非空)在“姓氏"之后; 我收到此错误: 您的 SQL 语法有错误;检查手册对应于您的 MySQL 服务器版本以使用正 ..
发布时间:2021-11-20 22:00:47 数据库

将 MySQL 列更改为 AUTO_INCREMENT

我正在尝试修改一个表以使其主键列 AUTO_INCREMENT 事后.我尝试了以下 SQL,但收到了语法错误通知. ALTER TABLE 文档ALTER COLUMN document_id AUTO_INCREMENT 我做错了什么还是不可能? +--------------------+|版本() |+--------------------+|5.0.75-0ubuntu10.2 | ..
发布时间:2021-11-20 21:46:27 数据库

如果不存在,则将列添加到 mysql 表

我的研究和实验还没有得出答案,所以我希望得到一些帮助. 我正在修改一个应用程序的安装文件,该文件在以前的版本中没有我现在要添加的列.我不想手动添加列,而是在安装文件中并且仅当表中不存在新列时才添加. 表格创建如下: 如果不存在则创建表`#__comm_subscribers`(`subscriber_id` int(11) NOT NULL auto_increment,`user_ ..
发布时间:2021-11-20 21:28:01 数据库

无法删除具有 FULLTEXT 索引的表上的主键

我有一个主键是 int 数据类型的表.我想删除这个列(因为它没有使用,我担心这个列可能会达到int数据类型的最大限制,所以我们不妨删除它.) 首先,我无法删除我试图首先删除约束: ALTER TABLE dbo.MyTable DROP CONSTRAINT PK_MyTableID 我收到错误: 无法删除索引“PK_MyTableID",因为它强制使用表或索引视图“MyTable ..
发布时间:2021-10-26 18:55:05 数据库

通过 alter table 命令删除 T-SQL 中的约束 - 问题

我在 t-SQL 中有以下代码: alter table Persons删除主键; 还有消息:消息 156,级别 15,状态 1,第 10 行关键字“primary"附近的语法不正确. 我检查了不同的语法组合,但都没有奏效.这里有什么问题? 表格就是这样创建的 - 这只是学习的开始,非常简单,只有两个约束. 创建表 Persons(PersonID int 非空主键,姓氏 var ..
发布时间:2021-09-10 19:58:52 数据库

尝试重命名 oracle 表中带有空格的列时出错.错误 - SQL 错误:ORA-00946:缺少 TO 关键字

我有一个名为 employee 的表.其中,我希望将列名从 Employee Name 更改为 Employee_Name(注意现有的列名有一个空格!) 当我使用以下命令时: Alter 表员工重命名列 Employee Name 为 Employee_Name 我收到此错误: SQL 错误:ORA-00946:缺少 TO 关键字 如何克服这个问题? 解决方案 由于 ..
发布时间:2021-07-07 19:15:07 数据库

更改时区约束PostgreSQL

我在这样的表中有一个属性: created_date时间戳,不带时区 现在,我的要求是将生产数据库上的created_date字段更改为带有时区的时间戳,但我不知道如何更改此约束. 解决方案 要更改列类型,请使用 ALTER TABLE 命令: ALTER TABLE yourtable ALTER COLUMN column_name TYPE timestamptz; ..
发布时间:2021-04-03 18:37:05 其他开发

ALTER TABLE在有限的磁盘空间上添加新列

我有一个关于操作主表的问题:我需要在其中添加一个新列,但是已经有超过5000万个条目要更新. 如果我不将数据存储在已经由数据库填充一半以上的小型ssd上,那将与更改表一样容易. alter table无法完成,因为它创建了该表的副本,然后才替换原始表. 两个副本不能放在我的ssd驱动器上,因此可以直接在原始表上运行,也可以在临时表上使用另一个驱动器吗?还是我应该使用另一台计算机来更改更大 ..
发布时间:2021-04-03 18:37:02 其他开发

如何从Hive表获取lastaltertimestamp?

Teradata具有 lastaltertimestamp 的概念,这是最后一次在表上执行 alter table 命令的时间.可以查询 lastaltertimestamp .Hive是否具有可以查询的相似值? hdfs dfs -ls/my/hive/file 返回的时间戳不反映 alter table 命令,因此 alter table 不能修改文件支持的Hive文件.描述格式也不提供 ..
发布时间:2021-04-03 18:36:59 其他开发