背景
我正在尝试创建一个表,该表将具有布尔值的单列和单行。它将由某个外部应用程序设置为True或False。
代码
BEGIN;
CREATE TABLE my_table (
my_flag BOOL DEFAULT TRUE
);
END;
SELECT * FROM my_table
问题
当我执行SELECT * FROM my_table
时,我希望它返回一个值为TRUE的行,除非它返回表和行,但没有值。我不知道为什么会这样?
很确定它没有返回一行:
CREATE TABLE my_table (
my_flag BOOL DEFAULT TRUE
);
select * from my_table ;
my_flag
---------
(0 rows)
DEFAULT
仅适用于INSERT
一行:
insert into my_table values (default);
INSERT 0 1
test(5432)=> select * from my_table ;
my_flag
---------
t
(1 row)
该表为空。必须至少添加一行。以下使用CTaS创建表的示例:
CREATE TABLE my_table (my_flag) AS SELECT TRUE;
db<gt;小提琴演示