-1

私はSQLを初めて使用します。あなたたちからの助けが必要です:)

私はJavaアプリケーションを構築していて、外部キーを使用した挿入のシナリオの1つで立ち往生しています。Employee_TypeEmployeeの2つのテーブルがあるとします。

テーブルEmployee_Type | idType | 位置| | -------- | -------------- | | 1 | マネージャー|

テーブル従業員

empId EmpName emp_type

FK (emp_type) reference Employee_type(idType)

Employee_Type 1、 Managerの値になりました

従業員テーブルに手動で挿入しています

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

上記の挿入では、FKであるemp_typeを手動で挿入しています。私の質問ですが、以下の例のように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

INSERT INTO ... SELECT RDBMSを指定しないため、構文が異なる場合がありますが、次の形式のリテラル値を使用するようにステートメントを再構築できるはずです。

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

句に他に何も含まれていない場合、上記はステートメントに一致するすべての行に対してWHERE1つの行を挿入することに注意してください。employeeSELECT

于 2012-11-09T03:48:29.237 に答える