I have a PostgreSQL (9.0) database with a column card_id which is currently of type integer
I need to change this to type text
What is the most best way to achieve this?
The only solution I can find involves creating a temporary column, dropping the original then renaming, I thought they might be a better method??
First, specify the name of the table to which the column you want to change belongs in the ALTER TABLE clause. Second, give the name of column whose data type will be changed in the ALTER COLUMN clause. Third, provide the new data type for the column after the TYPE keyword.
PostgreSQL supports a CAST operator that is used to convert a value of one type to another. Syntax: CAST ( expression AS target_type ); Let's analyze the above syntax: First, specify an expression that can be a constant, a table column, an expression that evaluates to a value.
Discussion: Use the :: operator to convert strings containing numeric values to the DECIMAL data type. In our example, we converted the string ' 5800.79 ' to 5800.79 (a DECIMAL value). This operator is used to convert between different data types.
How to increase the length of a character varying datatype in Postgres without data loss. Run the following command: alter table TABLE_NAME alter column COLUMN_NAME type character varying(120); This will extend the character varying column field size to 120.
Have you tried what the fine manual suggests:
ALTER TABLE table ALTER COLUMN anycol TYPE anytype;
Depending on the current and the new type you may need to add USING ...
to this statement. But in your specific case that should not be necessary I believe.
ALTER TABLE table ALTER COLUMN card_id SET DATA TYPE text;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With