Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

python mysql kesalahan dalam kueri

pertama, seperti yang diceritakan di sini:Periksa nama kolom SQL yang valid

Itu berasal dari PostGre doc, tetapi karena PostGre sangat dekat dengan sintaks SQL "ideal", itu mungkin sama untuk mysql... Jadi tidak ada tanda kurung pada nama kolom, tanpa spasi...

Dan kedua, Nama kolom bukan string :

Sintaks berikut ini valid:

CREATE TABLE (test VARCHAR(100) NOT NULL, ...)

Dan yang berikut ini tidak valid dan akan menimbulkan kesalahan sintaks:

CREATE TABLE ('test' VARCHAR(100) NOT NULL, ...)

Saat Anda menggunakan pengubah '%s', pengubah mem-parsing data sebagai STRING. jadi itu mengelilinginya dengan tanda kutip, yang tidak valid...

Jadi untuk membuat tabel Anda, saya sarankan "for loop" yang memvalidasi data (dengan regexpr), dan cukup tambahkan ke string:

import re
# ...
query = "CREATE TABLE test (ID INT AUTO_INCREMENT,name VARCHAR(50)"
for c in columnames:
        if (re.search(r"^[A-Za-z][A-Za-z0-9_]*$", c) query += c + ", FLOAT" #this regex validate string if  it begins with alphabetic char (upper or lower case), and if the others characters are alphanumeric, or are underscores
        else raise SyntaxError("Invalid Column name!!") #If not, we raise a syntax error
query += ");"

Dan kemudian Anda dapat membuat tabel Anda :)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perbarui kueri di Yii

  2. Bitnami. setel ulang root mysql pwd

  3. Konversikan file fbk (firebird) ke MySql

  4. Buat kueri untuk membuat tabel

  5. Bagaimana cara melakukan backup di MySQL?