Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk menggunakan penyambung Python untuk menyemak sama ada jadual/pangkalan data dalam MySQL sudah wujud?

<p>Jadi, saya ingin mencipta program yang akan mengambil input daripada pengguna tentang segala-galanya, iaitu nama pangkalan data, nama jadual, struktur jadual (nama lajur), data dan kemudian melakukan pelbagai tambah, padam, kemas kini padanya dan lain-lain fungsi. Tetapi saya tidak dapat menyemak sama ada jadual/pangkalan data yang dimasukkan oleh pengguna sudah wujud. Saya mencuba kod berikut: </p> <pre class="brush:php;toolbar:false;">def create_table(): table_in_database=input('Sila masukkan nama pangkalan data yang anda ingin buat jadual ini:') x=mysql.connect(host=host_name, user=user_name,password=user_password,database=table_in_database) y=x.kursor() jika table_in_database dalam y.fetchall(): name_table=input('Sila masukkan nama jadual yang akan dibuat:') jika name_table dalam y.fetchall(): print('Jadual sudah wujud, sila cuba nama lain atau gunakan jadual sedia ada') lain: table_structure=tuple(input('Sila masukkan nama struktur/baris jadual (dipisahkan dengan koma):')) y.execute('create table '+name_table+''+table_structure+'') print('jadual', nama_jadual, 'berjaya dibuat') x.commit() lain: print('pangkalan data', table_in_database, 'tidak wujud')</pre> <p>Tetapi ia gagal melakukan y.fetchall(), jadi saya juga cuba menggunakan fungsi show_database() yang berbeza yang menunjukkan semua pangkalan data dan bukannya menggunakan y.fetchall(), tetapi kemudian saya mendapat ralat NoneType. Adakah terdapat cara untuk menyemak sama ada jadual/pangkalan data wujud? </p>
P粉242535777P粉242535777396 hari yang lalu461

membalas semua(1)saya akan balas

  • P粉757432491

    P粉7574324912023-08-29 11:40:21

    Jika anda menyambung ke pangkalan data dan menjalankan pertanyaan SHOW TABLES; ia akan mengembalikan senarai semua jadual dalam pangkalan data itu.
    Anda boleh menggunakan kriteria untuk memperhalusi carian anda:

    SHOW tables 
    WHERE Tables_in_test ='triangle';
    +----------------+
    | Tables_in_test |
    +----------------+
    | triangle       |
    +----------------+

    Anda perlu mengubah suai nama lajur agar sepadan dengan pangkalan data anda.

    Tables_in_[database_name]

    balas
    0
  • Batalbalas