问题标签 [alter-table]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server-2005 - SQL Server 脚本:ALTER PROCEDURE - 将多个 ALTER PROCEDURE 执行到一个脚本中,而不必一个接一个地选择每个 ALTER
我知道这不是什么大问题,但无论如何它都会让我发痒。
- 我有一个 SQL Server 2005 脚本来创建新的数据表、约束、更改一些表以添加列、更改程序以考虑表更改等。
- 一切运行良好,直到脚本遇到我的 ALTER PROCEDURE 语句。
- 错误信息如下:
“消息 156,级别 15,状态 1,过程 cpromo_Get_ConsultDetails_PromotionBan,第 59 行关键字‘PROCEDURE’附近的语法不正确。
这是我的脚本示例:
错误指向双击时遇到的第一个“end”关键字。我根本没有得到的是当一个又一个选择一个 ALTER 语句时,它运行得很好而且很流畅!当我尝试通过按 [F5] 而不进行选择来运行它们时,它给了我错误。
我试图将 ALTER 语句嵌入到另一个 BEGIN...END 中,但没有运气,它说关键字 ALTER... 附近有语法错误
编辑:可能是因为我评论了 begin 语句之后执行的修改吗?
感谢您的任何帮助或任何提示。
mysql - 如何向 MySQL 中的 ENUM 类型列添加更多成员?
MySQL 参考手册没有提供关于如何执行此操作的明确示例。
我有一个 ENUM 类型的国家名称列,我需要添加更多国家。实现此目的的正确 MySQL 语法是什么?
这是我的尝试:
我得到的错误是:ERROR 1265 (01000): Data truncated for column 'country' at row 1.
该country
列是上述语句中的 ENUM 类型列。
显示创建表输出:
从汽车制造商输出中选择不同的国家:
sql - 在 MySQL 更改表中重命名比 DROP+ADD 快
我正在执行一些 MySQL 表维护,这意味着删除一些冗余列并添加一些新列。
一些要删除的列与要添加的列的类型相同。如果我利用这一点并重用一些现有的列,该过程会更快吗?
我的理由是更改列名应该是一个简单的表元数据更改,而删除和添加列意味着要么在文件末尾找到空间(分割数据),要么用正确的列重建每一行,使它们保持一致放在磁盘上。
有问题的引擎是 MyISAM,我不知道它会如何处理这个问题,所以我想听听以前遇到过同样情况的人的意见!
mysql - 如何更改 MySQL 列定义?
我有一个名为 test 的 mySQL 表:
我想将 locationExpect 列更改为:
怎样才能快速完成?
tsql - 尝试向临时表添加列失败
今天早上我已经查看了很多次,但找不到问题。它可能非常简单,当有人指出时我会觉得自己像个白痴。这个 SQL 会失败什么?
我得到的错误是:“'@MaxID' 附近的语法不正确”我已经检查并且 @MaxID 被 select 语句设置为 45。临时表 #WorkType 也没有名为“_RowID”的列
postgresql - PostgreSQL v7.4 ALTER TABLE 更改列
我需要更改 PostgreSQL v7.4 数据库中表中 CHAR 列的长度。此版本不支持使用 ALTER TABLE 语句直接更改列类型或大小的功能。因此,例如,直接将列从 CHAR(10) 更改为 CHAR(20) 是不可能的(是的,我知道,“使用 varchars”,但在我目前的情况下这不是一个选项)。有人对如何最好地完成此任务有任何建议/技巧吗?我最初的想法:
-- 将表的数据保存在一个新的“保存”表中。CREATE TABLE save_data AS SELECT * FROM table_to_change;
-- 从要更改的第一列中删除列。ALTER TABLE table_to_change DROP column_name1; -- 对于从需要修改的第一列开始的每一列 ALTER TABLE table_to_change DROP column_name2; ...
-- 重新添加列,使用 CHAR 列的新大小 ALTER TABLE table_to_change ADD column_name1 CHAR(new_size); -- 对于删除高于 ALTER TABLE table_to_change 的每一列 ADD column_name2...
-- 复制“保存”表中的数据 UPDATE table_to_change SET column_name1=save_data.column_name1, -- 对于删除/读取的每一列 column_name2=save_date.column_name2, ... FROM save_data WHERE table_to_change.primary_key=save_data.primay_key;
呸!希望有更好的方法吗?任何建议表示赞赏。谢谢!
mysql - Rails 的 alter_table 方法是怎么回事?
我一直在为正在开发的数据库使用 sqlite3,并且我的应用程序已经变得足够复杂,以至于使用起来有点慢。
我刚刚切换到 MySQL 并运行rake db:create ; rake db:migrate
,但我的一个迁移失败并显示以下错误消息:
我有一个快速的谷歌,并没有出现。然后我检查了 API 并没有记录方法alter_table
。但是,它确实适用于 sqlite3!
这是我的迁移:
这与 sqlite3 一样工作。
我要疯了吗?我是否只是发明了这种方法,而它恰好是一个未记录的功能,仅适用于受支持的数据库的子集?
有没有人对此有所了解?
ruby-on-rails - 如何在 Ruby on Rails 迁移中重命名数据库列?
我错误地命名了一个列hased_password
而不是hashed_password
.
如何更新数据库架构,使用迁移重命名此列?
mysql - Mysql 5.1.42 alter table auto_increment = 0 不起作用,truncate 起作用
对于我的自动化验收测试,我希望插入以 id=1 开头。我在一台PC(XP 32bit,mysql 5.1.something)上实现了这一点(在从表中删除所有行之后),“alter table tableName auto_increment = 0”。
我现在正在设置一台新PC(Windows 7 64bit,mysql 5.1.42),这个命令似乎没有效果。我可以在 information_schema.tables 表中看到 auto_increment 值没有变回 0 --- 它只是不断上升。如果我尝试直接更改该表中的值,我会被告知拒绝访问“root”@“localhost”。这可能暗示我的问题吗?
其他 stackoverflow 人建议“从 tableName 截断”是一个不错的选择。我很高兴地报告这行得通。但是有谁知道为什么“alter table”命令不会重置 auto_increment?
谢谢!
mysql - 如何将当前为 varchar 的价格字段转换为小数,以便我的价格正确排序?
我正在使用 MYSQL。
我有一个 varchar 字段,我错误地将其用于价格。现在该表的排序将无法正常工作,将超过 1000 的任何内容放在列表底部。
我猜我需要将现有填充数据库中的这个价格字段从 varchar 转换为十进制?
任何帮助,将不胜感激。