Как вставить внешний ключ с помощью ПОДВЫБОРА в SQL Server

, Если Вы управляете источником классов, для которых Вы интересуетесь тем, загружаются ли они или не (относительно которого я сомневаюсь, но Вы не заявляете в своем вопросе), затем Вы могли зарегистрировать свою загрузку в статическом инициализаторе.

public class TestLoaded {
    public static boolean loaded = false;
    public static void main(String[] args) throws ClassNotFoundException {
        System.out.println(loaded);
        ClassToTest.reportLoaded();
        System.out.println(loaded);
    }
    static class ClassToTest {
        static {
            System.out.println("Loading");
            TestLoaded.loaded = true;
        }
        static void reportLoaded() {
            System.out.println("Loaded");
        }
    }
}

Вывод:

false
Loading
Loaded
true
5
задан George Stocker 30 September 2009 в 15:19
поделиться

3 ответа

INSERT INTO Employee 
    (EmployeeName, DepartmentId)
SELECT 
    'John Doe' AS EmployeeName, Id AS DepartmentId
FROM 
    Department WHERE DepartmentName = 'Accounting';
10
ответ дан 18 December 2019 в 10:46
поделиться

Вы можете:

insert into Employee (
    EmployeeName,
    DepartmentId
)
SELECT 'John Doe', Id
FROM Department
WHERE DepartmentName = 'Accounting'
5
ответ дан 18 December 2019 в 10:46
поделиться

Ваш запрос не будет выполнен в Oracle , если существует более одного бухгалтерии.

Если вы полагаетесь на такое поведение, используйте следующий синтаксис:

INSERT
INTO    Employee
        (
        EmployeeName,
        DepartmentId
        )
SELECT  "John Doe",
        (
        SELECT  id
        FROM    Department
        WHERE   DepartmentName = 'Accounting'
        )

В противном случае, просто используйте синтаксис SELECT FROM Department , предложенный другими.

Обратите внимание, однако, что этот синтаксис вставит John Doe дважды или больше, если есть несколько строк с имя установлено на Бухгалтерский учет в Отделах .

1
ответ дан 18 December 2019 в 10:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: