我正在尝试将布尔列添加到现有表中
alter table chatuser add activerecord bool;
alter table chatuser add activerecord boolean;
Run Code Online (Sandbox Code Playgroud)
其中activerecord是我的布尔列
这些查询都不起作用.如何在现有表中添加布尔列?
我正在使用SQL Server(我是一个SQL Server noob)并尝试更改表.我想CREATE TABLE LIKE安全地存储数据,同时我删除键和约束以及SQL Server在原始表上更改时似乎需要的所有其他rigamorole但我无法找到该命令的匹配...
我正在使用db2版本9.7*,似乎不可能以任何直接的方式使NOT NULL列可以为空.
不幸的是,使用更加开发人员友好的数据库的解决方案不可用.基本上,在MySQL中,我想做类似的事情(其中MY_COLUMN曾经是VARCHAR(200)NOT NULL):
ALTER TABLE MY_TABLE MODIFY COLUMN MY_COLUMN VARCHAR(200);
Run Code Online (Sandbox Code Playgroud) 最初,表"MyTable"已按以下方式定义:
CREATE TABLE IF NOT EXISTS `MyTable` (
`Col1` smallint(6) NOT NULL AUTO_INCREMENT,
`Col2` smallint(6) DEFAULT NULL,
`Col3` varchar(20) NOT NULL,
);
Run Code Online (Sandbox Code Playgroud)
如何以"Col 3"列允许为NULL的方式更新它?
我有两个字段,我需要增加字符限制.我仔细阅读了文档,令我惊讶的是我找不到它的选择.有可能吗?如果没有,我该如何解决这个问题呢?
我可以删除列并使用正确的属性重新创建它,但我不想丢失数据库中的任何数据.
考虑下表,大约有10M行
CREATE TABLE user
(
id bigint NOT NULL,
...
CONSTRAINT user_pk PRIMARY KEY (id)
)
WITH (
OIDS=FALSE
)
Run Code Online (Sandbox Code Playgroud)
然后我应用了以下更改
ALTER TABLE USER ADD COLUMN BUSINESS_ID VARCHAR2(50);
--OK
UPDATE USER SET BUSINESS_ID = ID; //~1500 sec
--OK
ALTER TABLE USER ALTER COLUMN BUSINESS_ID SET NOT NULL;
ERROR: column "business_id" contains null values
SQL state: 23502
Run Code Online (Sandbox Code Playgroud)
这很奇怪,因为id列(已复制到business_id列)不能包含空值,因为它是主键,但要确保我检查它
select count(*) from USER where BUSINESS_ID is null
--0 records
Run Code Online (Sandbox Code Playgroud)
我怀疑这是一个错误,只是想知道我是否遗漏了一些微不足道的东西
我有一个运行一个名为ANIMAL的工作表的应用程序.首次创建此表时,它只包含_id和animal_name列.
现在我正在努力扩展它,包括一个animal_biography专栏,但是我有一点困难.首先我认为我只是升级我的CREATE_TABLE语句以包含动物生物:
private static final String DATABASE_CREATE =
"create table " + ANIMALS_TABLE +
" (_id integer primary key autoincrement, " +
"animal_name text not null, " +
"biography text not null);";
Run Code Online (Sandbox Code Playgroud)
然而,看着logcat它告诉我当试图插入时,列传记不存在.
现在,我尝试使用onUpgrade()包括代码来升级数据库
db.execSQL("ALTER TABLE" + DATABASE_NAME);
db.execSQL(DATABASE_CREATE);
Run Code Online (Sandbox Code Playgroud)
但这也没有解决问题.有没有人有任何关于如何解决这个问题的指示?
我想将数据库中某些主键列的数据类型从INT更改为BIGINT.以下定义是一个玩具示例来说明问题:
CREATE TABLE IF NOT EXISTS `owner` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`thing_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `thing_id` (`thing_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;
DROP TABLE IF EXISTS `thing`;
CREATE TABLE IF NOT EXISTS `thing` (
`id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;
ALTER TABLE `owner`
ADD CONSTRAINT `owner_ibfk_1` FOREIGN KEY (`thing_id`) REFERENCES `thing` (`id`);
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试执行以下命令之一时:
ALTER TABLE `thing` CHANGE `id` `id` BIGINT NOT NULL AUTO_INCREMENT; …Run Code Online (Sandbox Code Playgroud) 我有两张桌子
Tabel1包含2列
Tabel2包含2列
想要将table2中的age列添加到table1(WHERE table1.id = table2.id)
然后table1应该包含3列
alter ×10
mysql ×5
notnull ×2
sql ×2
android ×1
bigint ×1
builder ×1
database ×1
db2 ×1
enterprisedb ×1
foreign-keys ×1
int ×1
laravel ×1
non-nullable ×1
null ×1
nullable ×1
postgresql ×1
schema ×1
select ×1
sql-server ×1
sql-update ×1
sqlite ×1
t-sql ×1