Apakah nilai pulangan sisipan mysql?

青灯夜游
Lepaskan: 2023-04-11 18:06:01
asal
4889 orang telah melayarinya

Dalam mysql, nilai pulangan penyata sisipan ialah ID data baharu. Pernyataan INSERT digunakan untuk memasukkan satu atau lebih baris data tuple ke dalam jadual sedia ada dalam pangkalan data Sintaks ialah "INSERT INTO table(column1,column2...) VALUES (value1,value2,...);"; "INSERT INTO" Tanda kurungan selepas klausa menyatakan nama jadual dan senarai lajur yang dipisahkan koma.

Apakah nilai pulangan sisipan mysql?

Persekitaran pengendalian tutorial ini: sistem windows7, versi mysql8, komputer Dell G3.

Nilai pulangan sisipan ialah ID data baharu. Sudah tentu, premisnya ialah pangkalan data menyokong kunci utama ID penambahan automatik jika tiada kunci utama penambahan automatik ditentukan, nombor khas akan dikembalikan.

MYSQL INSERT: Masukkan data (tambah data)

Selepas pangkalan data dan jadual berjaya dibuat, data perlu dimasukkan ke dalam jadual pangkalan data. Dalam MySQL, anda boleh menggunakan pernyataan INSERT untuk memasukkan satu atau lebih baris data tuple ke dalam jadual sedia ada dalam pangkalan data.

1. Kenyataan INSERT MySQL yang ringkas

MySQL INSERT pernyataan digunakan untuk memasukkan satu atau lebih baris ke dalam jadual. Sintaks pernyataan INSERT digambarkan di bawah:

INSERT INTO table(column1,column2...)
VALUES (value1,value2,...);
Salin selepas log masuk

Pertama , selepas klausa INSERT INTO, nyatakan nama jadual dan senarai lajur yang dipisahkan koma dalam kurungan .
Kemudian , letakkan nilai dipisahkan koma dari lajur yang sepadan dalam kurungan selepas kata kunci VALUES.

Sebelum melaksanakan pernyataan sisipan, anda perlu mempunyai kebenaran INSERT untuk melaksanakan pernyataan INSERT.

Mari kita cipta jadual baharu bernama tasks untuk mempraktikkan pernyataan INSERT, rujuk kenyataan cipta berikut -

USE testdb;

CREATE TABLE IF NOT EXISTS tasks (
    task_id INT(11) AUTO_INCREMENT,
    subject VARCHAR(45) DEFAULT NULL,
    start_date DATE DEFAULT NULL,
    end_date DATE DEFAULT NULL,
    description VARCHAR(200) DEFAULT NULL,
    PRIMARY KEY (task_id)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
Salin selepas log masuk

Contohnya, jika anda ingin memasukkan tugasan ke dalam jadual tasts, gunakan pernyataan INSERT seperti berikut:

INSERT INTO tasks(subject,start_date,end_date,description)
VALUES('Learn MySQL INSERT','2017-07-21','2017-07-22','Start learning..');
Salin selepas log masuk

Selepas melaksanakan pernyataan ini, MySQL mengembalikan mesej untuk memberitahu bilangan baris yang terjejas. Dalam kes ini, satu baris terjejas.

Sekarang gunakan pernyataan berikut untuk menanyakan data dalam tasks, seperti yang ditunjukkan di bawah-

SELECT * FROM tasks;
Salin selepas log masuk

Laksanakan pernyataan pertanyaan di atas dan dapatkan keputusan berikut-

+---------+--------------------+------------+------------+------------------+
| task_id | subject            | start_date | end_date   | description      |
+---------+--------------------+------------+------------+------------------+
|       1 | Learn MySQL INSERT | 2017-07-21 | 2017-07-22 | Start learning.. |
+---------+--------------------+------------+------------+------------------+
1 row in set
Salin selepas log masuk

2. MySQL INSERT - Masukkan berbilang baris

Jika anda ingin memasukkan berbilang baris ke dalam jadual pada satu masa, anda boleh menggunakan INSERT pernyataan dengan sintaks berikut:

INSERT INTO table(column1,column2...)
VALUES (value1,value2,...),
       (value1,value2,...),
...;
Salin selepas log masuk

Dalam borang ini, senarai nilai untuk setiap baris dipisahkan dengan koma. Contohnya, untuk memasukkan berbilang baris ke dalam jadual tasks, gunakan pernyataan berikut:

INSERT INTO tasks(subject,start_date,end_date,description)
VALUES ('任务-1','2017-01-01','2017-01-02','Description 1'),
       ('任务-2','2017-01-01','2017-01-02','Description 2'),
       ('任务-3','2017-01-01','2017-01-02','Description 3');
Salin selepas log masuk

Selepas melaksanakan pernyataan di atas, kembalikan -

Query OK, 3 rows affected
Records: 3  Duplicates: 0  Warnings: 0
Salin selepas log masuk

Sekarang tanyakan tasks jadual Data dalam adalah seperti berikut-

select * from tasks;
Salin selepas log masuk

Laksanakan pernyataan pertanyaan di atas dan dapatkan keputusan berikut-

+---------+--------------------+------------+------------+------------------+
| task_id | subject            | start_date | end_date   | description      |
+---------+--------------------+------------+------------+------------------+
|       1 | Learn MySQL INSERT | 2017-07-21 | 2017-07-22 | Start learning.. |
|       2 | 任务-1             | 2017-01-01 | 2017-01-02 | Description 1    |
|       3 | 任务-2             | 2017-01-01 | 2017-01-02 | Description 2    |
|       4 | 任务-3             | 2017-01-01 | 2017-01-02 | Description 3    |
+---------+--------------------+------------+------------+------------------+
4 rows in set
Salin selepas log masuk

Jika anda menentukan nilai-nilai lajur yang sepadan untuk semua lajur dalam jadual, anda boleh Abaikan senarai lajur dalam INSERT pernyataan seperti ini:

INSERT INTO table
VALUES (value1,value2,...);
Salin selepas log masuk

atau -

INSERT INTO table
VALUES (value1,value2,...),
       (value1,value2,...),
...;
Salin selepas log masuk

Ambil perhatian bahawa ia tidak perlu untuk menambah automatik lajur (cth. taskid lajur) kerana MySQL secara automatik menjana nilai untuk lajur penambahan automatik.

3. MySQL INSERT dengan klausa SELECT

Dalam MySQL, anda boleh menggunakan lajur dan nilai yang dikembalikan oleh SELECT pernyataan untuk Mengisi nilai pernyataan INSERT. Ciri ini sangat mudah kerana anda boleh menyalin jadual sepenuhnya atau sebahagiannya menggunakan klausa INSERT dan SELECT seperti ini:

INSERT INTO table_1
SELECT c1, c2, FROM table_2;
Salin selepas log masuk

Katakan anda ingin menyalin jadual tasks ke tasks_bak meja.

Pertama , buat jadual baharu bernama tasks dengan menyalin struktur jadual tasks_bak seperti berikut:

CREATE TABLE tasks_bak LIKE tasks;
Salin selepas log masuk

Langkah kedua , gunakan pernyataan INSERT berikut untuk memasukkan data dalam jadual tasks ke dalam jadual tasks_bak:

INSERT INTO tasks_bak
SELECT * FROM tasks;
Salin selepas log masuk

Langkah ketiga , tandakan tasks_bak Data dalam jadual untuk melihat sama ada salinan daripada jadual tasks sebenarnya telah dilengkapkan.

mysql> select * from tasks;
+---------+--------------------+------------+------------+------------------+
| task_id | subject            | start_date | end_date   | description      |
+---------+--------------------+------------+------------+------------------+
|       1 | Learn MySQL INSERT | 2017-07-21 | 2017-07-22 | Start learning.. |
|       2 | 任务-1             | 2017-01-01 | 2017-01-02 | Description 1    |
|       3 | 任务-2             | 2017-01-01 | 2017-01-02 | Description 2    |
|       4 | 任务-3             | 2017-01-01 | 2017-01-02 | Description 3    |
+---------+--------------------+------------+------------+------------------+
4 rows in set
Salin selepas log masuk

4 INSERT MySQL dan PADA KEMASKINI KUNCI DUA

Jika baris baharu melanggar kunci utama (KUNCI UTAMA) atau <.> kekangan , ralat akan berlaku dalam MySQL. Sebagai contoh, jika anda melaksanakan penyataan berikut: UNIQUE

INSERT INTO tasks(task_id,subject,start_date,end_date,description)
VALUES (4,'Test ON DUPLICATE KEY UPDATE','2017-01-01','2017-01-02','Next Priority');
Salin selepas log masuk
MySQL menjadi tidak berpuas hati dan memberikan anda mesej ralat:

Error Code: 1062. Duplicate entry '4' for key 'PRIMARY' 0.016 sec
Salin selepas log masuk
Oleh kerana kunci utama

lajur dalam jadual sudah wujud Terdapat baris dengan nilai task_id, jadi pernyataan itu melanggar kekangan 4. PRIMARY KEY

Walau bagaimanapun, jika anda menetapkan pilihan ON DUPLICATE KEY UPDATE dalam pernyataan

, MySQL akan memasukkan baris baharu atau mengemas kini rekod baris asal dengan nilai baharu. INSERT

Sebagai contoh, pernyataan berikut mengemas kini baris dengan

ialah task_id dengan subject dan task_id baharu. 4

INSERT INTO tasks(task_id,subject,start_date,end_date,description)
VALUES (4,'Test ON DUPLICATE KEY UPDATE','2017-01-01','2017-01-02','Next Priority')
ON DUPLICATE KEY UPDATE 
   task_id = task_id + 1, 
   subject = 'Test ON DUPLICATE KEY UPDATE';
Salin selepas log masuk
Selepas melaksanakan pernyataan di atas, MySQL menghantar mesej yang mengatakan bahawa baris

terjejas. Sekarang, mari kita lihat data dalam jadual 2: tasks

mysql> select * from tasks;
+---------+------------------------------+------------+------------+------------------+
| task_id | subject                      | start_date | end_date   | description      |
+---------+------------------------------+------------+------------+------------------+
|       1 | Learn MySQL INSERT           | 2017-07-21 | 2017-07-22 | Start learning.. |
|       2 | 任务-1                       | 2017-01-01 | 2017-01-02 | Description 1    |
|       3 | 任务-2                       | 2017-01-01 | 2017-01-02 | Description 2    |
|       5 | Test ON DUPLICATE KEY UPDATE | 2017-01-01 | 2017-01-02 | Description 3    |
+---------+------------------------------+------------+------------+------------------+
4 rows in set
Salin selepas log masuk
Baris baharu tidak disisipkan, tetapi baris dengan nilai

task_id dikemas kini. Pernyataan 4 di atas adalah bersamaan dengan pernyataan KEMASKINI berikut: INSERT ON DUPLICATE KEY UPDATE

UPDATE tasks 
SET 
    task_id = task_id + 1,
    subject = 'Test ON DUPLICATE KEY UPDATE'
WHERE
    task_id = 4;
Salin selepas log masuk

【相关推荐:mysql视频教程

Atas ialah kandungan terperinci Apakah nilai pulangan sisipan mysql?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!