alter-table相关内容
我需要运行一个安装程序,它也可以是一个更新程序.安装程序需要能够最终拥有 mysql 数据库的特定方案/结构,无论某些表是否存在,是否遗漏了几列,或者不需要更改,因为它们的结构是最新的. 如何将 ALTER 和 CREATE 巧妙结合起来? 我在想一定有类似“添加...如果...重复"之类的东西 假设我有表 A.在一个客户端中,该表有一个列 -A1,另一个客户端有相同的表,但有
..
我正在创建一个将在 MS SQL 服务器中运行的脚本.此脚本将运行多个语句并且需要是事务性的,如果其中一个语句失败,则停止整体执行并回滚任何更改. 在发出 ALTER TABLE 语句以将列添加到表然后更新新添加的列时,我无法创建此事务模型.为了立即访问新添加的列,我使用 GO 命令执行 ALTER TABLE 语句,然后调用我的 UPDATE 语句.我面临的问题是我无法在 IF 语句中发出
..
我需要修改 SQLite 数据库中的一列,但由于数据库已经在生产中,我必须以编程方式进行.根据我的研究,我发现为了做到这一点,我必须执行以下操作. 使用新架构创建一个新表 将数据从旧表复制到新表 放下旧桌子 将新表重命名为旧表名 对于应该相对容易的事情来说,这似乎是一项荒谬的工作.没有更简单的方法吗?我需要做的就是更改现有列的约束并为其指定默认值. 解决方案 这是 SQL
..
我正在使用以下查询(针对 Internet 进行了清理)向我的 Postgresql 数据库添加一个新的“NOT NULL"列: ALTER TABLE mytable ADD COLUMN mycolumn 字符变化(50) NOT NULL; 每次运行此查询时,都会收到以下错误消息: 错误:列“mycolumn"包含空值 我被难住了.我哪里出错了? 注意:我主要使用 pgAdmi
..
可能的重复: ALTER TABLE 语句中的 DEFAULT 子句导致语法错误 我正在尝试使用 MS Access 中的 SQL 查询执行以下语句; ALTER TABLE [table] ALTER COLUMN [column] SET DEFAULT '默认值' 但是,我得到一个对话框,显示错误 ALTER TABLE 语句中的语法错误. 当我单击“确定"时,它会突出显示
..
我知道,我们不能使用修改列语法来重命名列,但可以更改列语法. 我的问题是:修改语法的主要用途是什么? 例如, alter table tablename change col1 col1 int(10) not null 代替 alter table tablename modify col1 int(10) not null 已编辑 问题已替换 修改语法的主要用途
..
假设 MySQL 表 (ISAM) 的默认排序通过执行: ALTER TABLE tablename ORDER BY columnname ASC; 从现在开始,假设我的查询中没有指定“ORDER BY"(即“SELECT * FROM tablename哪里......限制 10 个;")? 是否有我应该注意的极端情况? 更新 #1: 非常感谢 Quassnoi,他正确指出 I
..
很快我们将需要对我们的生产数据库进行架构更改.我们需要尽量减少这项工作的停机时间,但是,ALTER TABLE 语句将运行很长时间.我们最大的表有1.5亿条记录,最大的表文件是50G.所有表都是 InnoDB,它被设置为一个大数据文件(而不是一个文件每个表).我们在 8 核机器、16G 内存和 RAID10 配置上运行 MySQL 5.0.46. 我在 MySQL 调优方面有一些经验,但这通
..
我对 SQLite 3 还很陌生,刚才我不得不向我现有的表中添加一列.我开始这样做:ALTER TABLE thetable ADD COLUMN category;. 当然,我忘记指定该列的类型.我考虑做的第一件事是删除该列,然后重新添加它.但是,SQLite 似乎没有这样做的简单方法,我不得不备份表并在没有列的情况下重新创建它. 这看起来很乱,我想知道是否只有一种修改/添加列类型的
..
我在 MySQL 中用 itemID 列创建了一个表. 创建表格后,现在我想将此列更改为AUTOINCREMENT. 如何使用 ALTER 语句完成此操作? 表定义: ALLITEMS (itemid int(10) unsigned, itemname varchar(50)) 我正在使用以下代码,但它引发了语法错误 错误:语法不正确. ALTER TABL
..
我有一个名为 test 的 mySQL 表: 创建表测试(locationExpect varchar(120) NOT NULL;); 我想将 locationExpect 列更改为: 创建表测试(locationExpect varchar(120);); 如何快速完成? 解决方案 您的意思是在创建表后对其进行更改吗?如果是这样,您需要使用 alter table,特别是:
..
在 MySQL 中执行 ALTER TABLE 语句时,整个表在语句执行期间处于读锁定状态(允许并发读取,但禁止并发写入).如果它是一个大表,INSERT 或 UPDATE 语句可能会被阻塞很长时间.有没有办法进行“热修改",比如添加一列,使表格在整个过程中仍然可以更新? 我主要对 MySQL 的解决方案感兴趣,但如果 MySQL 无法做到,我会对其他 RDBMS 感兴趣. 澄清一下,
..
我尝试使用函数来设置表的 n_distinct 值.代码如下: 创建临时表_temp(id 整数);创建函数 pg_temp.setdistinct(_cnt real)以 $$ 形式返回无效开始更改表_temp更改列 ID 集(n_distinct=_cnt);结尾$$ 语言 plpgsql;选择 pg_temp.setdistinct(1000); 但收到以下错误: 错误:浮点选项“n_
..
我正在尝试将一列从 varchar(50) 更改为 nvarchar(200).更改此表的 SQL 命令是什么? 解决方案 ALTER TABLE TableNameALTER COLUMN 列名 NVARCHAR(200) [NULL |非空] 编辑如前所述,应该指定 NULL/NOT NULL,参见 Rob 的回答.
..
我正在使用以下代码检查临时表是否存在并在再次创建之前删除该表是否存在.只要我不更改列,它就可以正常工作.如果我稍后添加一列,它会给出一个错误提示“无效的列".请让我知道我做错了什么. IF OBJECT_ID('tempdb..#Results') 不是 NULL删除表#Results创建表#Results(公司 CHAR(3),StepId TINYINT,字段 ID TINYINT,)从#R
..
我尝试了以下方法,但没有成功: ALTER TABLE person ALTER COLUMN dob POSITION 37; 解决方案 "改变列位置" 在 PostgreSQL Wiki 中说: PostgreSQL 目前定义了列基于 attnum 列的顺序pg_attribute 表.唯一的办法更改列顺序是通过重新创建表,或通过添加列和旋转数据,直到你达到所需的布局. 这很
..
我们最近需要向一些现有的 SQLite 数据库表添加列.这可以通过 ALTER TABLE ADD COLUMN 来完成.当然,如果表已经被改变了,我们想不管它.不幸的是,SQLite 不支持 ALTER TABLE 上的 IF NOT EXISTS 子句. 我们目前的解决方法是执行 ALTER TABLE 语句并忽略任何“重复列名"错误,就像 这个 Python 示例(但在 C++ 中).
..
是否可以在sqlite的单个语句中更改表添加多个列?以下方法无效. 更改表测试添加列 mycolumn1 文本,添加列 mycolumn2 文本; 解决方案 不,您必须一次添加一个.请参阅SQLite 的 ALTER TABLE 文档 顶部的语法图: ADD 分支中没有循环,因此不允许重复.
..
我使用的是 SQL Server 2008 和 Navicat.我需要使用 SQL 重命名表中的列. ALTER TABLE table_name RENAME COLUMN old_name to new_name; 此语句不起作用. 解决方案 使用 sp_rename EXEC sp_RENAME 'TableName.OldColumnName', 'NewColumnName
..
作为标题,我有一个已经填充了 150000 条记录的现有表.我添加了一个 Id 列(当前为空). 我假设我可以运行查询来用增量数字填充此列,然后设置为主键并打开自动增量.这是正确的方法吗?如果是这样,我该如何填写初始数字? 解决方案 不 - 你必须反过来做:从一开始就把它添加为 INT IDENTITY - 它会是执行此操作时填充标识值: ALTER TABLE dbo.YourT
..