sql >> データベース >  >> RDS >> Mysql

複合キーのMySQLSELECTLAST_INSERT_ID()。出来ますか?

    はい。 1つのテーブルに複数の自動インクリメントフィールドを含めることはできません。

    CREATE TABLE foo (
      id1 int(11) NOT NULL auto_increment,
      id2 int(11) NOT NULL default '0',
      PRIMARY KEY  (id1, id2)
    );
    
    INSERT INTO foo VALUES (DEFAULT, 2);
    
    SELECT LAST_INSERT_ID(); -- returns 1, the value generated for id1
    

    LAST_INSERT_ID() AUTO_INCREMENTと宣言された列の値のみを返します 。 されなかった複合主キーの値を返す関数はありません。 システムによって生成されます。 INSERTで値を指定しただけなので、その値はすでに知っているはずです。 声明。トリッキーなケースは、トリガーなどが値をオーバーライドする場合です。




    1. JavaでOSのスリープイベントとウェイクアップイベントを検出する

    2. PythonリストからPostgreSQL配列へ

    3. AndroidStudioエミュレーターでSQLitedarabaseを使用してアプリを起動する方法は?

    4. SQL Serverのリンクサーバーからテーブルのリストを返す(T-SQLの例)