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

PostgreSQLで列のデータ型をテキストから整数に変更します

    create table test(id varchar );
    insert into test values('1');
    insert into test values('11');
    insert into test values('12');
    
    select * from test
    
     --Result--
     id
     character varying
    --------------------------
     1
     11
     12
    

    上記の表から、私がデータ型を使用したことがわかります–character varying idの場合 桁。しかし、私は常にintegersを提供しているので、それは間違いでした。 idとして 。したがって、varcharを使用します ここに悪い習慣があります。それでは、列タイプをintegerに変更してみましょう。 。

    ALTER TABLE test ALTER COLUMN id TYPE integer;
    

    しかし、それは戻ります:

    つまり、データはすでに列にあるため、データ型を単純に変更することはできません。データのタイプはcharacter varyingであるため 整数のみを入力しましたが、Postgresは整数として期待できません。これで、Postgresが提案したように、USINGを使用できます。 データを整数にキャストする式。

    ALTER TABLE test ALTER COLUMN id  TYPE integer USING (id::integer);
    

    動作します。

    したがって、

    を使用する必要があります
    alter table a.attend alter column terminal TYPE INTEGER  USING (terminal::integer) ;
    



    1. MySQL ODBCコネクタ32ビットまたは64ビット?

    2. MySQLコネクタとPyMySQLの例を使用したPythonConnectto MySQL Database

    3. OracleUnicodeスプーリング

    4. PDO ::ATTR_EMULATE_PREPARESを無効にすると、「不明」の問題が発生します