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

一意のキーなしで存在しない場合はmysql挿入

    クエリは成功します(それ以外の場合はmysql_query() trueを返しません )それでも、行は挿入されません。そのための唯一の説明は、SELECT 一部は空のセットになります。これは、LEFT JOIN t1に存在する行を返します ただし、t2にはありません 、ただし、選択はNULLで行われます t1の行 。

    これは機能するはずです:

    INSERT teamshalf
    (`yearID` , `lgID` , `teamID` , `Half` , 
    `divID` , `DivWin` , `Rank` , `G` , `W` , `L`)
     SELECT DISTINCT t1.`yearID` , t1.`lgID` , t1.`teamID` ,
     t1.`Half` , t1.`divID` , t1.`DivWin` , t1.`Rank` , t1.`G` , t1.`W` , t1.`L` 
     FROM `teamshalf_TEMP` t1 LEFT JOIN `teamshalf` t2 ON t1.`yearID` = t2.`yearID`
     AND t1.`lgID` = t2.`lgID` AND t1.`teamID` = t2.`teamID`
     AND t1.`Half` = t2.`Half` AND t1.`divID` = t2.`divID`
     AND t1.`DivWin` = t2.`DivWin` AND t1.`Rank` = t2.`Rank`
     AND t1.`G` = t2.`G` AND t1.`W` = t2.`W` AND t1.`L` = t2.`L`
     WHERE t2.`yearID` IS NULL
    

    mysql_query()にも注意してください 非推奨です。また、データを含む必要がある列をNOT NULLとして宣言する必要があります 、したがってNULL 受け付けられません。また、インデックスを使用していないため、クエリは遅くなります。



    1. mysqldump不明なオプションはビープ音を鳴らしません

    2. Laravel PDOException SQLSTATE[HY000][1049]不明なデータベース'forge'

    3. Oracleでコンマを使用して数値をフォーマットする方法

    4. Eloquentを使用してLaravelでAUTO_INCREMENTを設定するにはどうすればよいですか?