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

SERIALのようなINT列

    Informix DBMSでは、SERIAL列は挿入後に変更されません。実際、SERIAL値を更新することはできません。値として0を使用して新しい値を挿入するか(この場合、新しい値が生成されます)、または他の値を挿入することができます。他の値がすでに存在し、一意の制約がある場合、それは失敗します。存在しない場合、またはシリアル列に一意の制約がない場合は、成功します。挿入された値が以前に挿入された最大値よりも大きい場合、次に挿入される数値は再び1つ大きくなります。挿入された数値が小さいか負の場合、次の数値に影響はありません。

    したがって、値を変更せずに更新を行うことができます-問題ありません。番号を変更する必要がある場合は、削除と挿入(または挿入と削除)を実行する必要があります。挿入にはゼロが含まれます。一貫性を優先し、トランザクションを使用する場合は、いつでも削除してから、同じ番号またはゼロの行を(再)挿入して新しい番号をトリガーできます。これは、SQLを実行するプログラミング言語があることを前提としています。 ISQLとPerformを微調整して自動的に行うことはできないと思います。

    したがって、現時点では、Informixで問題は発生していません。

    適切なバージョンのIDS(サポートされているもの)を使用すると、SEQUENCEを使用して挿入される値を制御することもできます。これは、Oracleの構文と概念に基づいています。 DB2もこれをサポートしています。他のDBMSには、自動生成された数値を処理するための他の同等の(ただし異なる)メカニズムがあります。



    1. 別のSELECTの値に基づいてSELECTする方法

    2. PHPでMySQLから主キーを抽出します

    3. 新鮮なWAMPインストールの奇妙なキャラクター?

    4. ValueError:DatetimeIndexをdtypedatetime64[us]にキャストできません