Editor struktur
Editor struktur mengubah kolom, index, dan foreign key sebuah tabel menjadi draft yang bisa diedit. Perubahan Anda terkumpul sebagai revisi pending, dan Review SQL menampilkan DDL persis untuk engine Anda sebelum apa pun dikirim.

Mulai mengedit
- Buka tabel dari navigator. Di tab Data-nya, klik Structure, atau buka langsung tab objek tabel itu.
- Klik Edit structure. Tab dalam Columns, Indexes, dan Foreign keys menjadi bisa diedit. Gunakan ⌘1 sampai ⌘7 untuk berpindah tab dalam.
- Untuk membuat tabel, klik kanan schema atau folder Tables-nya di navigator dan pilih New table…. Draft dimulai dengan kolom primary key
idbertipe sesuai engine Anda (misalnyabigintdi PostgreSQL,INTEGERdi SQLite). Ketik nama tabel di bagian atas.
Edit structure nonaktif di koneksi read-only dan untuk objek yang bukan tabel. Klik Stop editing untuk keluar; kalau ada perubahan pending, Selekta bertanya dulu sebelum membuangnya.
Mengedit kolom, index, dan foreign key
Klik dua kali sel, atau fokuskan lalu tekan Return, untuk mengeditnya. Return menyimpan nilai dan Esc membatalkan.
Kolom
Setiap kolom punya name, type, nullable, default, dan key.
- Kolom type menyarankan tipe yang umum untuk engine Anda, seperti
numeric(14,2),timestamptz, danjsonbdi PostgreSQL ataunvarchar(255)di SQL Server. Anda bisa mengetik tipe apa pun yang diterima server. - Default berupa SQL mentah, misalnya
now()atau'pending'. - Mencentang key memasukkan kolom ke primary key dan menjadikannya NOT NULL.
- Add column menambah baris di akhir. Tombol tempat sampah menghapus kolom; tombol undo mengembalikannya.
Index
Index yang sudah ada ditampilkan apa adanya; Anda bisa menghapusnya. Add index membuat index baru dengan nama, daftar kolom dipisah koma, dan unique. Index primary key mengikuti kolom key di tab Columns.
Foreign key
Add foreign key meminta nama, kolom, tabel yang dirujuk, kolom yang dirujuk (sebanyak jumlah kolom), dan aksi on delete: NO ACTION, RESTRICT, CASCADE, SET NULL, atau SET DEFAULT. Foreign key yang sudah ada bisa dihapus.
Perubahan pending
Setiap perbedaan antara draft Anda dan tabel di server adalah perubahan pending. Sel yang berubah diberi awan dengan tag Δ, baris tambahan ditandai baru, dan baris yang dihapus dicoret. Strip di atas grid bertuliskan, misalnya, Structure · 3 pending dan mencantumkan setiap perubahan dalam kata-kata:
rename column note → notes
alter total: type numeric(14,2), not null
add index orders_status_idx (status)
- Setiap perubahan punya tombol undo yang mengembalikan bagian itu seperti di server.
- Perubahan yang saling meniadakan, seperti mengganti nama kolom lalu mengembalikannya, tidak meninggalkan apa pun yang pending.
- Discard all membuang semua perubahan; tidak ada yang dikirim ke server.
- Review SQL tetap nonaktif selama draft punya masalah, dan strip menyebutkan masalahnya: kolom tanpa nama atau tipe, dua kolom bernama sama, atau index maupun foreign key baru yang belum lengkap.
Perubahan dijalankan dengan urutan tetap: ganti nama tabel, hapus foreign key, hapus index, hapus kolom, ganti nama kolom, ubah kolom, kolom baru, primary key, lalu index dan foreign key baru, sehingga index baru bisa memakai kolom baru.
Review SQL dan apply
Tekan Review SQL atau ⌘S. Dialognya berjudul Apply 3 changes to orders? (atau Create table invoices?) dan menampilkan koneksi tujuan dengan tag environment-nya, lalu setiap statement yang akan dijalankan server, bernomor, sesuai engine Anda. Dialog bisa menampilkan peringatan, misalnya saat perubahan tipe bisa gagal pada nilai yang ada atau menghilangkan data.
- Baca statement dan peringatannya.
- Tekan Copy SQL kalau Anda ingin menyimpan atau menjalankannya sendiri.
- Tekan Apply atau ⌘↵.
Catatan di bagian bawah menyebutkan apakah plan berjalan dalam satu transaksi. Kalau ya dan ada statement yang gagal, semuanya di-rollback dan perubahan Anda tetap pending. Kalau tidak, statement sebelum kegagalan tetap berlaku; klik Refresh untuk melihat struktur saat ini.
Dalam manual commit, plan yang transaksional tetap pending di transaksi terbuka tab itu sampai Anda meng-commit-nya.
Perbedaan antar engine
- PostgreSQL dan SQL Server: seluruh plan berjalan dalam satu transaksi, atau dalam savepoint di dalam transaksi yang sudah terbuka.
- MySQL: setiap
ALTERter-commit sendiri, jadi kegagalan di tengah jalan meninggalkan langkah sebelumnya tetap berlaku. Dialog review memperingatkan hal ini. Perubahan kolom ditulis sebagaiMODIFYdengan definisi kolom lengkap. - SQLite: menambah, mengganti nama, dan menghapus kolom, mengganti nama tabel, serta menambah atau menghapus index dilakukan di tempat. Mengubah kolom, primary key, atau foreign key tidak bisa dilakukan di tempat, jadi tabel dibangun ulang: tabel baru dibuat, baris disalin, tabel lama dihapus dan tabel baru diganti namanya, lalu index dan trigger dibuat ulang. Proses ini berjalan dalam satu transaksi dengan foreign key dimatikan, dan foreign key diperiksa sebelum commit. Tabel hasil bangun ulang tidak mempertahankan CHECK constraint, collation, generated column, WITHOUT ROWID, atau STRICT; dialog menyebutkan mana yang ditemukan.