开发者社区> 问答> 正文

我怎么知道什么时候使用'NOT NULL'?(最佳实践)

在以下代码中,此人NOT NULL在某些行上添加了约束。我想知道他们如何区分哪些是“必需的”。这仅仅是基于直觉的,还是针对此类事情的指南?

songplay_table_create = ("""CREATE TABLE IF NOT EXISTS songplays(
                            songplay_id SERIAL PRIMARY KEY,
                            start_time timestamp,
                            user_id int NOT NULL,
                            level varchar,
                            artist_id varchar,
                            song_id varchar,
                            session_id int,
                            location text,
                            user_agent text)""")

# CREATE DIMENION TABLES
user_table_create = ("""CREATE TABLE IF NOT EXISTS users(
                        user_id int NOT NULL,
                        first_name varchar NOT NULL,
                        last_name varchar NOT NULL,
                        gender char,
                        level varchar,
                        PRIMARY KEY (user_id))""")

song_table_create = ("""CREATE TABLE IF NOT EXISTS songs(
                        song_id varchar NOT NULL,
                        title varchar,
                        artist_id varchar,
                        year int,
                        duration float,
                        PRIMARY KEY (song_id))""")

artist_table_create = ("""CREATE TABLE IF NOT EXISTS artists(
                        artist_id varchar NOT NULL,
                        name varchar,
                        location varchar,
                        lattitude numeric,
                        longitude numeric,
                        PRIMARY KEY (artist_id))""")

time_table_create = ("""CREATE TABLE IF NOT EXISTS time(
                        start_time timestamp NOT NULL,
                        hour int,
                        day int,
                        week int,
                        month int,
                        year int,
                        weekday varchar,
                        PRIMARY KEY (start_time))""")

展开
收起
祖安文状元 2020-02-21 14:10:16 614 0
1 条回答
写回答
取消 提交回答
  • NOT NULL本质上意味着特定的列在对表进行更新/插入时将不接受任何NULL值,这只是一个提示,您不确定如何运行此操作,但不应CREATE TABLE time_table_create将查询var名称作为要创建的表。

    希望这是有用的。

    2020-02-21 14:10:22
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
ES八大最佳实践 立即下载
企业代码安全最佳实践 立即下载
企业级代码安全最佳实践 立即下载

相关实验场景

更多