-1

我是 SQL 新手。需要你们的帮助:)

我正在构建一个 java appl 并陷入使用外键插入的场景之一。假设我有 2 个表Employee_TypeEmployee

Employee_Type | 标识类型 | 职位 | | -------- | -------------- | | 1| 经理|

员工

empId 企业名称 emp_type

FK (emp_type) reference Employee_type(idType)

现在Employee_Type
1,
Manager中的值

我手动插入员工

INSERT INTO
   employee (empId, name, emp_type) 
VALUES
   (
      10, 'prashant', 1
   )

在上面的插入中,我手动插入emp_type,即FK。我的问题,有没有办法像下面的例子一样使用 select 自动插入 FK 值?

INSERT INTO
   employee(empId, name, emp_type) 
VALUES
   (
      10, 'prashant', 
      (
         SELECT
            idType 
         FROM
            Employee_type,
            employee 
         WHERE
            employee.emp_type = employee_type.idtype
      )
   )
4

1 回答 1

1

您没有指定您的 RDBMS,因此语法可能会有所不同,但您应该能够重组语句以使用以下INSERT INTO ... SELECT 格式的文字值:

INSERT INTO employee (empId,name,emp_type) 
  SELECT 
    /* Build a SELECT statement which includes the static values as literals */
    '10' AS empId,
    'prashant' AS name,
    /* and the idType column */
    idType
  FROM Employee_type,employee 
  WHERE employee.emp_type=employee_type.idtype

请注意,如果子句中没有任何其他内容,则上述语句将为语句匹配的每一行WHERE插入一行。employeeSELECT

于 2012-11-09T03:48:29.237 回答