在以下代码中,此人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))""")
NOT NULL本质上意味着特定的列在对表进行更新/插入时将不接受任何NULL值,这只是一个提示,您不确定如何运行此操作,但不应CREATE TABLE time_table_create将查询var名称作为要创建的表。
希望这是有用的。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。