我需要在当前表中添加一列.
这张桌子在白天和晚上都经常使用.我发现我需要使用此处找到的alter命令进行更改
http://dev.mysql.com/doc/refman/5.1/en/alter-table.html
Run Code Online (Sandbox Code Playgroud)
我在开发服务器上测试了它.
我花了大约2个小时才完成.现在我想在生产服务器上执行此操作?
这会阻止我的网站吗?
我正在尝试将SQL Server中列的数据类型从tinyint更改为smallint.
但是我的列上有一个默认值,我不知道约束的名称.
有一个简单的方法吗?
由于默认约束,这不起作用:
ALTER TABLE mytable
Alter Column myColumn smallint NOT NULL default 1
Run Code Online (Sandbox Code Playgroud) ALTER TABLE user DROP COLUMN registered_date
Run Code Online (Sandbox Code Playgroud)
我们可以使用上面的命令删除一列.但是,如果列registered_date存在,我该如何删除它?
我有一个带有400万行MyISAM表的MySQL数据库.我每周更新一次这个表约2000个新行.更新后,我然后改变这样的表:
ALTER TABLE x ORDER BY PK DESC
Run Code Online (Sandbox Code Playgroud)
我按主键字段按降序排列表.这对我的开发机器(带3GB内存的Windows)没有任何问题.有三次我在生产Linux服务器上成功尝试过它(512MB内存 - 并且每次大约6分钟就能实现结果排序表),最后一次尝试它我不得不在大约30分钟后停止查询并重建备份数据库.
一个512MB的服务器可以在这么大的表上处理那个alter语句吗?我已经读过创建临时表来执行ALTER TABLE命令.
问题:这个alter命令可以安全运行吗?改变桌子的预计时间应该是多少?
我想改变我的表并向SPARSE包含大量NULL值的所有字段添加选项.这个ALTER TABLE命令的正确语法是什么?
我试图改变多个表并将username VARCHAR列的大小更改为999,因为它的当前大小太小,现在事情搞砸了.我怎样才能做到这一点?
我尝试了以下它,它适用于一个表,但在尝试更新多个表名时,它返回错误:
ALTER TABLE `TABLE_NAME` CHANGE `username` VARCHAR( 999 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL
Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我进行了一些更改并将它们上传到测试服务器.因为我无法访问服务器数据库,所以我运行ALTER命令对其进行更改.
使用方法我在服务器上运行以下命令:
ALTER TABLE `blahblahtable` ADD COLUMN `newcolumn` INT(12) NOT NULL
Run Code Online (Sandbox Code Playgroud)
之后,我发现表的所有数据都已删除.现在表格是空白的.
所以我需要改变表而不删除他的数据.有没有办法做到这一点?
我创建了一个基于另一个视图和一个表的视图.我想添加varchar类型的新列.我确实喜欢下面,但是语法错误?我是SQL的新手,所以,无法理解
ALTER VIEW [dbo].[MyView]
ADD New_Col varchar(10) null
GO
Run Code Online (Sandbox Code Playgroud) 我有一个包含不到 5000 万行的表。它达到了 INT 的限制 (2147483647)。目前该表尚未被写入。
我计划将 ID 列从 INT 更改为 BIGINT。我正在使用 Rails 迁移通过以下迁移来执行此操作:
def up
execute('ALTER TABLE table_name MODIFY COLUMN id BIGINT(8) NOT NULL AUTO_INCREMENT')
end
Run Code Online (Sandbox Code Playgroud)
我已经在 2000 行的数据集上进行了本地测试,效果很好。在 5000 万条上运行ALTER TABLE命令应该没问题,因为目前该表没有被使用?
我想在运行迁移之前进行检查。任何意见将不胜感激,谢谢!