我有2张桌子。我正在尝试创建import scalaz.std.list._
import scalaz.std.either._
import scalaz.syntax.monadPlus._
val el : List[Either[Int, String]] = List(Left(1), Right("Success"), Left(42))
scala> val (lefts, rights) = el.separate
lefts: List[Int] = List(1, 42)
rights: List[String] = List(Success)
。这是我的第一张表:
FORIEGN KEY
当我尝试创建第二个表时:
CREATE TABLE bills(
id serial,
name varchar(100),
payment decimal(12, 2),
payoff decimal(12, 2),
type varchar(25)
)
我收到此错误:
CREATE TABLE pay_dates(
id serial,
bill_id integer REFERENCES bills(id),
due_date date,
pay_date date,
paid boolean
)
。
我做错了什么?
答案 0 :(得分:2)
引用的列必须是唯一的。您应该将id声明为主键:
create table test (val1 serial, val2 serial);
insert into test (val2) values (1), (2), (default), (3), (4), (default);
select * from test;
val1 | val2
------+------
1 | 1
2 | 2
3 | 1
4 | 3
5 | 4
6 | 2
(6 rows)
主键(或唯一)约束必须声明为显式。类型serial仅确保默认值是序列中的下一个值。例如:
import pandas as pd
pd.DataFrame({'job': ['a', 'a', 'b', 'b', 'c'], 'gender':['M', 'F', 'M', 'F', 'M'], 'income':[300, 200, 450, 400, 350]})
Out[3]:
gender income job
0 M 300 a
1 F 200 a
2 M 450 b
3 F 400 b
4 M 350 c
答案 1 :(得分:1)