删除具有外键的行时如何在数据库中保留条目

时间:2019-11-17 21:19:42

标签: sql ruby

我的数据库设置如下:

CREATE TABLE farms
(
  id SERIAL8 primary key,
  name VARCHAR(255) not null,
  address VARCHAR(255),
  phone_num VARCHAR(255)
);

CREATE TABLE products
(
  id SERIAL8 primary key,
  name VARCHAR(255) not null,
  description VARCHAR(255),
  stock FLOAT,
  cost FLOAT,
  price FLOAT,
  farm_id INT8 references farms(id)
)

我遇到的问题是删除服务器场时,它还删除了该服务器场中所有可用的产品,但我只想删除服务器场,而不是产品。

这是我删除场的方法

  def delete
    sql = "DELETE FROM farms WHERE id = $1"
    values = [@id]
    SqlRunner.run(sql, values)
  end

我是如何构建表的问题,还是我的SQL语句不正确?

0 个答案:

没有答案