SQL:如何在同一表的另一行中重用id?

SQL:如何在同一表的另一行中重用id?,sql,hsqldb,Sql,Hsqldb,我是sql新手,正在处理收据数据库 CREATE TABLE Food( id INTEGER PRIMARY KEY NOT NULL IDENTITY, name VARCHAR (30) NOT NULL, entity VARCHAR (30) NOT NULL, alternative_ID INTEGER NOT NULL )

我是sql新手,正在处理收据数据库

CREATE TABLE Food(
                id INTEGER PRIMARY KEY NOT NULL IDENTITY,
                name VARCHAR (30) NOT NULL,
                entity VARCHAR (30) NOT NULL,
                alternative_ID INTEGER NOT NULL
                );

如何插入例如苹果并将香蕉的id用于替代id列?

您只需插入以下值:

insert into food (name, entity, alternative_id)
    select 'apple', ?, id
    from food
    where name = 'banana';

那个?是因为不清楚实体在此上下文中的含义。

您只需插入值:

insert into food (name, entity, alternative_id)
    select 'apple', ?, id
    from food
    where name = 'banana';

那个?是因为不清楚实体在这种情况下的含义。

替代id应该是什么?苹果有一个与自身相关的id&另一种食物的id,可以用作烹饪的替代品。我建议您设置一个sep表,名为food_alternative。一种食物肯定有不止一种选择,预先做多对多比以后添加要容易得多。我会使用食物id、名称、实体和食物替代id、名称、实体、食物id,并尝试在食物中插入替代名称、实体、食物id值‘香蕉’、‘公斤’,从食物中选择id,其中name='apple';,但这不起作用。对food.id.food alternative的food\u id引用只包含两个id,映射回每个单独的记录。food_alternative id,alternative_id-您将加入两次以获取id信息和alternative id信息alternative id应该是什么?一个苹果有一个与自身相关的id,一个来自另一种食物的id,可以用作烹饪的替代品。我建议您设置一个名为food_alternative的sep表。一种食物肯定有不止一种选择,预先做多对多比以后添加要容易得多。我会使用食物id、名称、实体和食物替代id、名称、实体、食物id,并尝试在食物中插入替代名称、实体、食物id值‘香蕉’、‘公斤’,从食物中选择id,其中name='apple';,但这不起作用。对food.id.food alternative的food\u id引用只包含两个id,映射回每个单独的记录。食物替代id,替代id-您将加入两次以获取id信息和替代id信息