postgresql的ALTER常用操作,postgresqlalter

來源:互聯網
上載者:User

postgresql的ALTER常用操作,postgresqlalter

postgresql版本:psql (9.3.4)

1、增加一列ALTER TABLE table_name ADD column_name datatype;                    2、刪除一列ALTER TABLE table_name DROP  column_name;                             3、更改列的資料類型ALTER TABLE table_name ALTER  column_name TYPE datatype;              4、表的重新命名ALTER TABLE table_name RENAME TO new_name;                           5、更改列的名字ALTER TABLE table_name RENAME column_name to new_column_name;           6、欄位的not null設定ALTER TABLE table_name ALTER column_name {SET|DROP} NOT NULL;          7、給列添加defaultALTER TABLE table_name ALTER column_name SET DEFAULT expression;      


PostgreSQL:怎查詢基於使用者(role)設定的參數

下面示範下:一 方法一:通過 pg_user 視圖查詢--1.1 設定使用者的 log_statement 參數 postgres=# alter role francs set log_statement="all";ALTER ROLE --1.2 驗證 postgres=# select * From pg_user where usename='francs';-[ RECORD 1 ]--------------------usename | francsusesysid | 24920usecreatedb | fusesuper | fusecatupd | fuserepl | fpasswd | ********valuntil | useconfig | {log_statement=all}--1.3 設定使用者的 maintenance_work_mem 參數 postgres=# alter role francs set maintenance_work_mem="1GB";ALTER ROLE--1.4 再次驗證 postgres=# select * From pg_user where usename='francs';-[ RECORD 1 ]---------------------------------------------usename | francsusesysid | 24920usecreatedb | fusesuper | fusecatupd | fuserepl | fpasswd | ********valuntil | useconfig | {log_statement=all,maintenance_work_mem=1GB} 備忘:上面是通過 pg_user.useconfig 查詢。二 方法二: 通過 pg_db_role_setting catalog 基表查詢--2.1 pg_db_role_setting 表結構 Table "pg_catalog.pg_db_role_setting" Column | Type | Modifiers -------------+--------+----------- setdatabase | oid | not null setrole | oid | not null setconfig | text[] | Indexes: "pg_db_role_setting_databaseid_rol_index" UNIQUE, btree (setdatabase, setrole), tablespace "pg_global"備忘:可見 pg_db_role_setting 會針對資料庫,使用者層級進行記錄。--2.2 驗證 postgres=# select oid,rolname from pg_authid where rolname='francs'; oid | rolname -------+--------- 24920 | francs(1 row)postgres=# select * From pg_db_role_setting where setrole=24920; setdatabase | setrole | setconfig -----------......餘下全文>>
 
postgresql哪個語句可以改變欄位名的類型?alert table 表名 alter column 欄位名 欄位類型 這個是不行的

alter table 表名 alter column 欄位名 varchar(50) not null;
或者
alter table 表名 modify column 欄位名 varchar(50) not null;
欄位類型自訂 ,可以是varchar、int等類型,根據不同的資料庫版本,修改指令可能是alter column或modify column
 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.