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

ubah auto_increment dalam tabel yang sama menggunakan subquery mysql

Pengurai tidak mendukung subkueri di tempat Anda mencoba menggunakannya.

Berikut kutipan dari sumber MySQL, dari sql/sql_yacc.yy:

create_table_option:
    . . .
    | AUTO_INC opt_equal ulonglong_num

Yang harus Anda baca di sana adalah AUTO_INCREMENT opsi tabel hanya menerima satu nomor literal, bukan ekspresi atau subquery atau variabel atau apa pun. Jadi, Anda tidak dapat menyetel AUTO_INCREMENT dalam pernyataan yang sama dengan yang Anda lakukan SELECT MAX(id)+1 .

Tapi Anda tidak perlu melakukannya.

MySQL tidak akan pernah mengalokasikan id peningkatan otomatis kurang dari nilai terbesar saat ini dalam tabel. Jadi jika Anda memiliki tabel dengan nilai id 102, nilai selanjutnya yang dialokasikan adalah setidaknya 103.

Anda bahkan dapat mencoba menyetel AUTO_INCREMENT=50 secara eksplisit, tetapi itu akan ditingkatkan secara otomatis menjadi MAX(id)+1.



  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 melihat semua kunci asing ke tabel atau kolom?

  2. mysql:pisahkan nilai varchar dan masukkan bagian

  3. Metode async MySQL C# tidak berfungsi?

  4. Bagaimana saya bisa mengatur tanggal ke NULL di Yii?

  5. Membuat api CakePHP REST dari proyek yang sudah ada