40得票6回答
修改表以修改列的默认值

我有一个需求,需要修改数据库表中某个列的默认值。该表已经存在于数据库中,当前该列的默认值为NULL。 如果添加新的默认值到该列,如果我没记错的话,它会将该列中所有现有的NULL更新为新的默认值。是否有一种方法可以不这样做,但仍然在列上设置一个新的默认值。 我的意思是,我不想更新现有的NULL,...

39得票3回答
如果PostgreSQL表中不存在主键,则添加主键。

我在Postgres 9.1中有一个简单的创建表脚本。如果不存在,我需要它只创建带有2个属性主键的表。CREATE TABLE IF NOT EXISTS "mail_app_recipients" ( "id_draft" Integer NOT NULL, "id_pers...

39得票5回答
仅当存在时重命名列

PostgreSQL不允许 ALTER TABLE t RENAME COLUMN IF EXISTS c1 TO c2 有时候我们需要修改数据库结构,但是每次都需要手动检查是否已经执行过,这样很不方便。因此编写可以重复运行的脚本来修改数据库结构非常实用。 那么我该如何编写一个 Pos...

38得票2回答
MySQL: ALTER IGNORE TABLE ADD UNIQUE,将会被截断的是什么?

我有一个有4个列的表:ID,类型,所有者,描述。 ID是AUTO_INCREMENT PRIMARY KEY,现在我想要:ALTER IGNORE TABLE `my_table` ADD UNIQUE (`type`, `owner`); 当然,我有一些类型为'Apple'且所有者为...

38得票2回答
如何为已存在的列添加默认值?

我的SQL Server数据库中有一个已有的列,我已经尝试了我能想到的一切,但是无法在该列上添加默认值。 在其他所有数据库中正常工作的是 alter table mytable alter column mycolumn set default(now()) --mycolumn is ...

37得票4回答
在所有表中,如果不存在则添加一列?

我使用SQL Server 2005/2008。如果表不存在,我需要在表中添加一列。这将适用于给定数据库中的所有表。我希望我的解决方案是正确的,但出现了问题。 如何完成这个操作? 这是我的代码:EXEC sp_MSforeachtable ' declare @tblname va...

37得票4回答
Hive更改表列名

我想在Hive中重命名一个列名。是否有一种方法可以在Hive中重命名列名。 tableA(column1,_c1,_c2) 改为 tableA(column1,column2,column3) ??

37得票1回答
如何在PostgreSQL中修改“REFERENCES”?

当表名更改时,我该如何修改对PostgreSQL中表的引用?假设我有以下代码:CREATE TABLE example1 ( id serial NOT NULL PRIMARY KEY, name varchar(100) ); CREATE TABLE example2 ( ...

37得票1回答
MySQL中的"ADD KEY"和"ADD INDEX"有什么区别?

我备份了数据库,但有一个问题:这个查询是什么意思?ALTER TABLE `ps_cart_rule` ADD KEY `id_customer` (`id_customer`,`active`,`date_to`); ALTER TABLE `ps_cart_rule` ADD KEY `i...

37得票3回答
MySQL将默认值设置为JSON类型列

我听说mysql 8.0.13之前的版本接受json类型列的默认值,所以我使用以下命令: ALTER TABLE templates CHANGE COLUMN values JSON NOT NULL DEFAULT '{}' ; 但是收到了错误: Error Code: 1101....