私は以下のことをすべてコマンドラインとmysql>
プロンプトから実行しています。外部キーとINSERT INTOテーブル(MySQL/InnoDB)を取り出す方法
私はDBの初心者であり、構造(チュートリアル)と定義(マニュアル)に多くのサイトがありますが、実際の例はありません。私はそう
CREATE TABLE IF NOT EXISTS owner
(
ID INT NOT NULL AUTO_INCREMENT,
name VARCHAR(32) NOT NULL UNIQUE,
PRIMARY KEY(ID)
)ENGINE=InnoDB
CREATE TABLE IF NOT EXISTS dog
(
ID INT NOT NULL AUTO_INCREMENT,
owner INT NOT NULL,
name VARCHAR(32) NOT NULL UNIQUE,
PRIMARY KEY(ID),
FOREIGN KEY (owner) REFERENCES owner(ID)
)ENGINE=InnoDB
のように2つのテーブルを持っている場合そして、私はテーブルの犬に追加したい場合は、私は名前(「ピーター・グリフィン」)から不可解な所有者のIDを取得するにはどうすればよい
INSERT INTO dog (owner, name) VALUES(get_owner_ID("Peter Griffin"), "Brian Griffin");
「挿入」を行う前に、ピーターのIDをまず選択する必要があります(ビジネスロジックに依存します)。 – kan
@kanそれは私が迷子になる場所です。私が '' name = "Peter Griffin"の所有者からIDを選択すると、intではなくテーブルが返されます。あなたはどのように単一の価値を得ていますか?それをどこに「保管」しますか?私はそれを複合ステートメントとして使用しますか? – puk
2つの別々のクエリを実行してください。選択してから挿入してください。また、単一のレコードのみが返されるかどうかをチェックします(つまり、レコードがname = 'Peter'を1つしか持たないことを意味します)。 – kan