如何在 sql 中向现有表添加布尔数据类型列?

问题描述 投票:0回答:4

我的数据库中有一个名为 person 的表。我想在同一个表中添加另一列,它是一个布尔数据类型的列。我尝试了以下查询,但它说 syntax error near default。我知道这很常见,并且有很多答案。我已经尝试了很多,但无法弄清楚如何让它发挥作用。所以请帮助我。

查询我试过

ALTER TABLE person add column "AdminApproved" BOOLEAN SET default FALSE;
ALTER TABLE person alter column "AdminApproved" BOOLEAN SET default FALSE;         

我也试过没有SET关键字。

sql sql-server alter-table
4个回答
58
投票

在 SQL SERVER 中它是

BIT
,尽管它允许存储
NULL

ALTER TABLE person add  [AdminApproved] BIT default 'FALSE';

你的查询还有其他错误

  1. 当您更改表以添加列时,无需在

    column
    语句中提及
    alter
    关键字

  2. 添加默认约束不需要使用

    SET
    关键字

  3. BIT
    列的默认值可以是
    ('TRUE' or '1')
    /
    ('FALSE' or 0)
    TRUE
    FALSE
    需要提及为
    string
    而不是标识符


42
投票

Pரதீப் 给出的答案创建了一个可为空的布尔值,而不是布尔值,这可能适合您。例如在 C# 中它会创建:

bool? AdminApproved
not
bool AdminApproved
.

如果需要创建bool(默认为false):

    ALTER TABLE person
    ADD AdminApproved BIT
    DEFAULT 0 NOT NULL;

1
投票

在 phpmyadmin 中,如果您需要将布尔数据类型列添加到默认值为 true 的现有表中:

ALTER TABLE books
   isAvailable boolean default true;

0
投票

有两种方法可以做到。

ALTER TABLE `tablename`
ADD `column_name` BOOLEAN DEFAULT FALSE 

ALTER TABLE `tablename`
ADD `column_name` TINYINT DEFAULT 0
© www.soinside.com 2019 - 2024. All rights reserved.