Originally I have a table like this
create table users (
userid integer not null,
email_address varchar (255) unique not null,
PRIMARY KEY (userid)
);
Later I find that varchar(255) is not enough. I designed to change the type to
text. There is no simple SQL to alter the type. So I use a series of SQLs to
create a new column, copy the data over and then replace the old column with the
new.
ALTER TABLE users ADD email_address_text text UNIQUE;
UPDATE users set email_address_text=email_address;
ALTER TABLE users DROP email_address;
ALTER TABLE users RENAME email_address_text TO email_address;
ALTER TABLE users ALTER email_address SET not null;
This works mostly OK. Until I have one database that has over 1 million records
in table user. It fails with an inexplicable error:
mydb=# UPDATE users set email_address_text=email_address;
ERROR: invalid page header in block 6776 of relation "users_email_address_text_key"
Anyone can shred some light what has went wrong?
wy
- [SQL] Unexpected SQL error for UPDATE aurora
- Re: [SQL] Unexpected SQL error for UPDATE Michael Glaesemann
- Re: [SQL] Unexpected SQL error for UPDATE Jaime Casanova
- Re: [SQL] Unexpected SQL error for UPDATE aurora
- Re: [SQL] Unexpected SQL error for UPDATE Jaime Casanova