我的数据库中有一个名为 person 的表格。我想将另一列添加到同一个表中,它是一个布尔数据类型列。我尝试过以下查询,但默认情况下会出现语法错误。我知道这很常见,而且有很多答案。我已经尝试了很多这些并且无法弄清楚它是否有效。所以请帮助我。
查询我尝试了
ALTER TABLE person add column "AdminApproved" BOOLEAN SET default FALSE;
ALTER TABLE person alter column "AdminApproved" BOOLEAN SET default FALSE;
我也试过没有 SET 关键字。
答案 0 :(得分:18)
在SQL SERVER中它是BIT
,但它允许存储NULL
ALTER TABLE person add [AdminApproved] BIT default 'FALSE';
您的查询中还有其他错误
当您更改要添加列的表时,无需在column
语句中提及alter
关键字
要添加默认约束,无需使用SET
关键字
BIT
列的默认值可以是('TRUE' or '1')
/ ('FALSE' or 0)
。 TRUE
或FALSE
需要提及为string
而不是标识符
答案 1 :(得分:9)
Pரதீப்给出的答案创造了一个可以为空的bool,而不是bool,这可能对你没问题。例如,在C#中,它会创建:bool? AdminApproved
而不是bool AdminApproved
。
如果你需要创建一个bool(默认为false):
ALTER TABLE person
ADD AdminApproved BIT
DEFAULT 0 NOT NULL;
答案 2 :(得分:0)
在phpmyadmin中,如果需要将布尔数据类型列添加到默认值为true的现有表中:
ALTER TABLE books
isAvailable boolean default true;
答案 3 :(得分:-1)
以下查询对我有用,默认值为false;
ALTER TABLE cti_contract_account ADD ready_to_audit BIT DEFAULT 0 NOT NULL;