Apakah mungkin untuk mendapatkan struktur database MySQL, atau hanya beberapa tabel dengan permintaan sederhana?
Atau ada cara lain, bagaimana saya bisa melakukannya?
Apakah mungkin untuk mendapatkan struktur database MySQL, atau hanya beberapa tabel dengan permintaan sederhana?
Atau ada cara lain, bagaimana saya bisa melakukannya?
Jawaban:
Saya pikir apa yang Anda cari DESCRIBE
DESCRIBE table;
Anda juga bisa menggunakan SHOW TABLES
SHOW TABLES;
untuk mendapatkan daftar tabel di database Anda.
Untuk mendapatkan seluruh struktur basis data sebagai kumpulan pernyataan CREATE TABLE , gunakan mysqldump :
mysqldump database_name --compact --no-data
Untuk tabel tunggal, tambahkan nama tabel setelah nama db di mysqldump. Anda mendapatkan hasil yang sama dengan SQL dan SHOW CREATE TABLE :
SHOW CREATE TABLE table;
Atau DESCRIBE jika Anda lebih suka daftar kolom:
DESCRIBE table;
show create table
persis apa yang saya cari. Terima kasih!
Lihatlah INFORMATION_SCHEMA
. TABLES
meja. Berisi metadata tentang semua tabel Anda.
Contoh:
SELECT * FROM `INFORMATION_SCHEMA`.`TABLES`
WHERE TABLE_NAME LIKE 'table1'
Keuntungan dari ini dibandingkan metode lain adalah Anda dapat dengan mudah menggunakan kueri seperti yang di atas sebagai subkueri di kueri lainnya.
information_schema
. columns
(menggunakan columns
tabel alih-alih tables
? Karena tables
tidak berisi info tentang tipe kolom kolom mana yang merupakan informasi
menggunakan ini:
SHOW CREATE TABLE `users`;
akan memberi Anda DDL untuk tabel itu
DESCRIBE `users`
akan mencantumkan kolom dalam tabel itu
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME ='products';
dimana Table_schema
nama database
SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_COMMENT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'my_db_name' AND TABLE_NAME ='users';
Itulah permintaan SHOW CREATE TABLE . Anda dapat meminta TABEL SKEMA juga.
SHOW CREATE TABLE YourTableName;
Variasi dari jawaban pertama yang saya temukan bermanfaat
Buka prompt perintah Anda dan masukkan (Anda tidak harus masuk ke server mysql Anda)
mysqldump -hlocalhost -u<root> -p<password> <dbname> --compact --no-data > </path_to_mydump/>mysql.dmp
PILIH COLUMN_NAME
DARI INFORMATION_SCHEMA
. COLUMNS
WHERE TABLE_SCHEMA
= 'bodb' AND TABLE_NAME
= 'abc';
berfungsi untuk mendapatkan semua nama kolom
Dalam contoh berikut,
playground
adalah nama basis data danequipment
merupakan nama tabel
Cara lain menggunakan SHOW-COLUMNS: 5.5 (tersedia juga untuk 5.5>
)
$ mysql -uroot -p<password> -h<host> -P<port> -e \
"SHOW COLUMNS FROM playground.equipment"
Dan hasilnya:
mysql: [Warning] Using a password on the command line interface can be insecure.
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| type | varchar(50) | YES | | NULL | |
| quant | int(11) | YES | | NULL | |
| color | varchar(25) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
Anda juga dapat menggunakan mysqlshow-client (juga tersedia untuk 5.5>
) seperti berikut:
$ mysqlshow -uroot -p<password> -h<host> -P<port> \
playground equipment
Dan hasilnya:
mysqlshow: [Warning] Using a password on the command line interface can be insecure.
Database: playground Table: equipment
+-------+-------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
| Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment |
+-------+-------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
| id | int(11) | | NO | PRI | | auto_increment | select,insert,update,references | |
| type | varchar(50) | latin1_swedish_ci | YES | | | | select,insert,update,references | |
| quant | int(11) | | YES | | | | select,insert,update,references | |
| color | varchar(25) | latin1_swedish_ci | YES | | | | select,insert,update,references | |
+-------+-------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
SHOW TABLES FROM database_name