alter-table相关内容
我有一个表,其中有几个可为空的整数列.由于多种原因,这是不可取的,因此我希望将所有空值更新为 0,然后将这些列设置为 NOT NULL.除了将空值更改为 0 之外,还必须保留数据. 我正在寻找特定的 SQL 语法来将列(称为 ColumnA)更改为“not null".假设数据已更新为不包含空值. 使用SQL server 2000. 解决方案 首先,让所有当前的 NULL 值
..
我错误地将列命名为 hased_password 而不是 hashed_password. 如何更新数据库架构,使用迁移重命名此列? 解决方案 rename_column :table, :old_column, :new_column 您可能需要创建一个单独的迁移来执行此操作.(根据需要重命名 FixColumnName.): 脚本/生成迁移 FixColumnName
..
我需要重命名 SQLite 数据库中某些表中的几列.我知道一个 类似的问题 之前在stackoverflow上有问过,不过一般是针对SQL的,没有提到SQLite的情况. 从 ALTER TABLE 的 SQLite 文档中,我认为不可能执行这样的操作事情“很容易"(即单个 ALTER TABLE 语句). 我想知道有人知道使用 SQLite 执行此类操作的通用 SQL 方式.
..
我需要将表的主键更改为标识列,并且表中已经有许多行. 我有一个脚本来清理 ID,以确保它们从 1 开始是连续的,在我的测试数据库上运行良好. 更改列以具有标识属性的 SQL 命令是什么? 解决方案 您不能更改现有列的标识. 你有两个选择, 创建一个具有身份的新表 &删除现有表 创建一个带有标识 & 的新列删除现有列 方法 1.(新表)在这里您可以保留新创
..
我一直在检查 MySQL ALTER TABLE 文档 并且它似乎不包括向列添加或修改注释的方法.我该怎么做? -- 用于表格ALTER TABLE myTable COMMENT 'Hello World'-- 对于列——??? 解决方案 尝试: ALTER TABLE `user` CHANGE `id` `id` INT( 11 ) COMMENT 'id of user'
..
我有一个包含 4 列的表格:ID、类型、所有者、描述.ID 是 AUTO_INCREMENT PRIMARY KEY,现在我想: ALTER IGNORE TABLE `my_table`添加唯一 (`type`, `owner`); 当然,我很少有 type = 'Apple' 和 owner = 'Apple CO' 的记录.所以我的问题是,哪条记录将是那个 ALTER TABLE 之后要
..
我需要在大约 5M 行的 MySQL 表上创建一个索引.它是一个生产表,如果我运行 CREATE INDEX 语句,我担心所有内容都会被完全阻塞... 有没有办法在不阻塞插入和选择的情况下创建索引? 只是想知道我不必停止,创建索引并重新启动我的系统! 解决方案 [2017] 更新:MySQL 5.6 支持在线索引更新 https://dev.mysql.com/doc/r
..
我有一个名为 provider 的表.我有三列名为person、place、thing.可以有重复的人、重复的地点和重复的事物,但永远不可能有重复的人地物组合. 如何使用这三列在 MySQL 中为该表添加复合主键? 解决方案 ALTER TABLE provider ADD PRIMARY KEY(person,place,thing); 如果主键已经存在,那么你想这样做 ALT
..
我有这个代码: ALTER TABLE `settings`添加列`multi_user` TINYINT(1) NOT NULL DEFAULT 1 而且我只想在此列不存在时更改此表. 我尝试了很多不同的方法,但没有任何效果: ALTER TABLE `settings`添加列如果不存在`multi_user` TINYINT(1) NOT NULL DEFAULT 1 与程序:
..
如何重命名表 xyz 中的列?列是: Manufacurerid, name, status, AI, PK, int 我想重命名为manufacturerid 我尝试使用 PHPMyAdmin 面板,但出现此错误: MySQL 说:文档#1025 - 将 '.\shopping\#sql-c98_26' 重命名为 '.\shopping\tblmanufacturer' 时出错(错误
..
我创建了一个表,不小心将 varchar 长度设为 300 而不是 65353.我该如何解决? 一个例子将不胜感激. 解决方案 你试过了吗? ALTER TABLE 修改VARCHAR(65353); 这会将 col_name 的类型更改为 VARCHAR(65353)
..
我需要向表中添加多列,但将列定位在之后名为lastname的列. 我已经试过了: ALTER TABLE `users` 添加列(`count` smallint(6) 不是 NULL,`log` varchar(12) 非空,`status` int(10) 无符号非空)在“姓氏"之后; 我收到此错误: 您的 SQL 语法有错误;检查手册对应于您的 MySQL 服务器版本以使用正
..
我正在尝试修改一个表以使其主键列 AUTO_INCREMENT 事后.我尝试了以下 SQL,但收到了语法错误通知. ALTER TABLE 文档ALTER COLUMN document_id AUTO_INCREMENT 我做错了什么还是不可能? +--------------------+|版本() |+--------------------+|5.0.75-0ubuntu10.2 |
..
我的研究和实验还没有得出答案,所以我希望得到一些帮助. 我正在修改一个应用程序的安装文件,该文件在以前的版本中没有我现在要添加的列.我不想手动添加列,而是在安装文件中并且仅当表中不存在新列时才添加. 表格创建如下: 如果不存在则创建表`#__comm_subscribers`(`subscriber_id` int(11) NOT NULL auto_increment,`user_
..
我有一个主键是 int 数据类型的表.我想删除这个列(因为它没有使用,我担心这个列可能会达到int数据类型的最大限制,所以我们不妨删除它.) 首先,我无法删除我试图首先删除约束: ALTER TABLE dbo.MyTable DROP CONSTRAINT PK_MyTableID 我收到错误: 无法删除索引“PK_MyTableID",因为它强制使用表或索引视图“MyTable
..
我在 t-SQL 中有以下代码: alter table Persons删除主键; 还有消息:消息 156,级别 15,状态 1,第 10 行关键字“primary"附近的语法不正确. 我检查了不同的语法组合,但都没有奏效.这里有什么问题? 表格就是这样创建的 - 这只是学习的开始,非常简单,只有两个约束. 创建表 Persons(PersonID int 非空主键,姓氏 var
..
我有一个名为 employee 的表.其中,我希望将列名从 Employee Name 更改为 Employee_Name(注意现有的列名有一个空格!) 当我使用以下命令时: Alter 表员工重命名列 Employee Name 为 Employee_Name 我收到此错误: SQL 错误:ORA-00946:缺少 TO 关键字 如何克服这个问题? 解决方案 由于
..
我在这样的表中有一个属性: created_date时间戳,不带时区 现在,我的要求是将生产数据库上的created_date字段更改为带有时区的时间戳,但我不知道如何更改此约束. 解决方案 要更改列类型,请使用 ALTER TABLE 命令: ALTER TABLE yourtable ALTER COLUMN column_name TYPE timestamptz;
..
我有一个关于操作主表的问题:我需要在其中添加一个新列,但是已经有超过5000万个条目要更新. 如果我不将数据存储在已经由数据库填充一半以上的小型ssd上,那将与更改表一样容易. alter table无法完成,因为它创建了该表的副本,然后才替换原始表. 两个副本不能放在我的ssd驱动器上,因此可以直接在原始表上运行,也可以在临时表上使用另一个驱动器吗?还是我应该使用另一台计算机来更改更大
..
Teradata具有 lastaltertimestamp 的概念,这是最后一次在表上执行 alter table 命令的时间.可以查询 lastaltertimestamp .Hive是否具有可以查询的相似值? hdfs dfs -ls/my/hive/file 返回的时间戳不反映 alter table 命令,因此 alter table 不能修改文件支持的Hive文件.描述格式也不提供
..