我是新手,所以希望有耐心。:)
如果值不存在,我正在尝试填充两个表。基本上我有:
TABLE b
(
id VARCHAR(254) PRIMARY KEY NOT NULL
);
TABLE d
(
id VARCHAR(254) PRIMARY KEY NOT NULL,
relay INT NOT NULL,
FOREIGN KEY ( relay ) REFERENCES b ( id )
);
所以我正在尝试编写一个用新值填充两个表的函数,如果它不存在,或者忽略它......当然包含在事务中:
IF (NOT EXISTS(SELECT * FROM b where id='something'))
insert into b values('something')
insert into d values(1, 'something')
END
实现此类目标的最有效方法是什么?如果重要的话,我使用的是 POstgreSQL 9.1,但我想保持它相当通用。
(编辑)这些是我当前的表定义(为说明目的而简化):
object d extends Table[(String, String, Int)]("d")
{
def id=column[String]("id", O.PrimaryKey)
def relay=column[Int]("relay")
def relay_ref=foreignKey("d2b.fk", relay, b)(_.id)
def * = id ~ relay
}
object b extends Table[(String)]("b")
{
def id=column[String]("id", O.PrimaryKey)
def * = id
}