PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Thay đổi kiểu dữ liệu cột từ Văn bản thành Số nguyên trong 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

Bạn có thể thấy từ bảng trên rằng tôi đã sử dụng kiểu dữ liệu - character varying cho id cột. Nhưng đó là một sai lầm vì tôi luôn cung cấp integers dưới dạng id . Vì vậy, sử dụng varchar đây là một thực hành xấu. Vì vậy, hãy thử thay đổi loại cột thành integers .

ALTER TABLE test ALTER COLUMN id TYPE integer;

Nhưng nó trả về:

Điều đó có nghĩa là chúng tôi không thể thay đổi loại dữ liệu một cách đơn giản vì dữ liệu đã có sẵn trong cột. Vì dữ liệu thuộc loại character varying Postgres không thể mong đợi nó là số nguyên mặc dù chúng tôi chỉ nhập số nguyên. Vì vậy, bây giờ, như Postgres đề xuất, chúng tôi có thể sử dụng USING biểu thức để truyền dữ liệu của chúng tôi thành số nguyên.

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

Nó hoạt động.

Vì vậy, bạn nên sử dụng

alter table a.attend alter column terminal TYPE INTEGER  USING (terminal::integer) ;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Xử lý BatchUpdateException bằng withBatch

  2. Chèn json hợp lệ với bản sao vào bảng postgres

  3. Django ORM đọc sai chuỗi PostgreSQL?

  4. Tiến trình nâng cấp trực tuyến

  5. Kiểm tra xem loại do người dùng xác định đã tồn tại trong PostgreSQL hay chưa