Rumah > Artikel > pangkalan data > Bagaimana untuk menambah lajur pada jadual oracle
Dalam Oracle, anda boleh menggunakan pernyataan "ALTER TABLE ADD" untuk menambah satu atau lebih lajur pada jadual, sintaksnya ialah "ALTER TABLE table_name ADD column_name data_type constraint;".
Persekitaran pengendalian tutorial ini: sistem Windows 7, versi Oracle 11g, komputer Dell G3.
Dalam Oracle, anda boleh menggunakan pernyataan "ALTER TABLE ADD
" untuk menambah satu atau lebih lajur pada jadual.
Untuk menambah lajur baharu pada jadual, gunakan pernyataan ALTER TABLE
seperti berikut:
ALTER TABLE table_name ADD column_name data_type constraint;
Dalam pernyataan di atas,
ALTER TABLE
, nyatakan nama jadual yang anda ingin tambahkan lajur baharu. Sila ambil perhatian bahawa anda tidak boleh menambah lajur yang sudah wujud dalam jadual apabila berbuat demikian akan mengakibatkan ralat. Selain itu, pernyataan lajur
ALTER TABLE ADD
menambah lajur baharu di hujung jadual. Oracle tidak menyediakan cara langsung untuk membolehkan anda menentukan lokasi lajur baharu seperti sistem pangkalan data lain (seperti MySQL).
Jika anda ingin menambah berbilang lajur, gunakan sintaks berikut:
ALTER TABLE table_name ADD ( column_name_1 data_type constraint, column_name_2 data_type constraint, ... );
Dalam sintaks ini, pisahkan dua lajur dengan koma.
Mari kita buat jadual bernama members
. Rujuk kepada pernyataan SQL berikut -
-- 12c语法 CREATE TABLE members( member_id NUMBER GENERATED BY DEFAULT AS IDENTITY, first_name VARCHAR2(50), last_name VARCHAR2(50), PRIMARY KEY(member_id) );
Pernyataan berikut menambah lajur baharu bernama birth_date
pada jadual members
:
ALTER TABLE members ADD birth_date DATE NOT NULL;
Dalam contoh ini, birth_date
Lajur ialah lajur DATE
, ia tidak menerima null
.
Andaikan anda ingin merakam masa penciptaan dan kemas kini baris. Kemudian anda boleh menambah dua lagi lajur created_at
dan updated_at
, seperti berikut: Jenis data lajur
ALTER TABLE members ADD( created_at TIMESTAMP WITH TIME ZONE NOT NULL, updated_at TIMESTAMP WITH TIME ZONE NOT NULL );
created_at
dan updated_at
ialah TIMESTAMP WITH TIME ZONE
. Lajur ini juga tidak menerima null
.
Untuk menyemak sama ada lajur wujud dalam jadual, anda boleh menanyakan data daripada paparan user_tab_cols
. Sebagai contoh, pernyataan berikut akan menyemak sama ada jadual members
mempunyai lajur first_name
.
SELECT COUNT(*) FROM user_tab_cols WHERE column_name = 'FIRST_NAME' AND table_name = 'MEMBERS';
Pertanyaan ini berguna apabila anda ingin menyemak sama ada lajur wujud dalam lajur sebelum menambahkannya pada jadual.
Sebagai contoh, blok PL/SQL berikut menyemak sama ada jadual members
mempunyai lajur effective_date
sebelum menambahkannya.
SET SERVEROUTPUT ON SIZE 1000000 DECLARE v_col_exists NUMBER BEGIN SELECT count(*) INTO v_col_exists FROM user_tab_cols WHERE column_name = 'EFFECTIVE_DATE' AND table_name = 'MEMBERS'; IF (v_col_exists = 0) THEN EXECUTE IMMEDIATE 'ALTER TABLE members ADD effective_date DATE'; ELSE DBMS_OUTPUT.PUT_LINE('The column effective_date already exists'); END IF; END; /
Jika blok ini dilaksanakan buat kali pertama, maka lajur effective_date
akan ditambahkan pada penghujung jadual members
. Walau bagaimanapun, sebaik sahaja anda melaksanakannya dari kali kedua, anda akan melihat mesej berikut:
The column effective_date already exists
Ini adalah seperti yang dijangkakan daripada program yang ditulis di atas.
Tutorial yang disyorkan: "Tutorial Oracle"
Atas ialah kandungan terperinci Bagaimana untuk menambah lajur pada jadual oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!