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

masukkan beberapa tupel ke dalam tabel di web2py

Secara default, kata sandi di-hash ketika dimasukkan ke dalam auth_user tabel (melalui validator formulir yang terkait dengan bidang kata sandi). Jadi, Anda tidak ingin melakukan penyisipan SQL standar dari kata sandi teks biasa ke dalam tabel (tidak hanya itu tidak aman, tetapi upaya login berikutnya akan gagal karena Auth mengharapkan sandi yang di-hash).

Cara termudah untuk menyelesaikan hashing saat melakukan penyisipan massal adalah dengan mengulang catatan dan menyisipkan masing-masing menggunakan .validate_and_insert metode. Ini akan menjalankan semua validator bidang (yang akan menghasilkan kata sandi yang di-hash), dan catatan apa pun yang gagal validasi tidak akan dimasukkan (jadi, misalnya, nama pengguna duplikat tidak akan dimasukkan karena akan gagal validasi).

for user in db(db.user).select():
    db.auth_user.validate_and_insert(username=user.username, password=user.password)

Meskipun proses validasi akan secara otomatis menolak nama pengguna duplikat, jika Anda mengharapkan banyak duplikat dan ingin meningkatkan efisiensi, Anda dapat memilih yang bukan duplikat terlebih dahulu dari user tabel:

users = db(~db.user.username.belongs(db()._select(db.auth_user.username))).select()
for user in users:
    db.auth_user.validate_and_insert(username=user.username, password=user.password)

Perhatikan juga bahwa secara default, auth_user tabel memang membutuhkan nilai dalam first_name , last_name , dan email bidang (dan alamat email yang valid diperlukan untuk beberapa Auth fungsionalitas, seperti mengatur ulang kata sandi). Jadi, Anda harus merencanakan untuk mengisi kolom tersebut juga, atau mengatur requires atribut ke None sehingga validasi tidak gagal. Misalnya:

db.auth_user.first_name.requires = None

Opsi lainnya adalah menentukan auth_user khusus tabel.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menggunakan Entity Framework 6 dengan MySQL di ASP.NET 5?

  2. MySQL:bagaimana cara menghapus semua karakter tunggal dari sebuah string?

  3. Ganti nama tabel dengan variabel. Menggunakan konektor python dan mysql

  4. MySQL untuk diganti dengan wildcard

  5. Mengapa kueri yang sama persis menghasilkan 2 hasil penjelasan MySQL yang berbeda?