Mencipta Jadual Sementara dalam SQL: Gambaran Keseluruhan Pantas
Pertanyaan anda bertujuan untuk mencipta jadual sementara bernama 'temp1' dan mengisinya dengan data yang mempunyai 'jenis_daftar' tertentu ('%gen%'). Walau bagaimanapun, isu ini timbul daripada penggunaan 'CREATE TABLE' dan bukannya 'CREATE TABLE AS.'
Pendekatan Betul
Untuk mencipta jadual sementara dan mengisinya dengan data daripada pertanyaan, anda harus menggunakan 'BUAT JADUAL SEBAGAI':
CREATE TEMP TABLE temp1 AS SELECT dataid , register_type , timestamp_localtime , read_value_avg FROM rawdata.egauge WHERE register_type LIKE '%gen%' ORDER BY dataid, timestamp_localtime;
Arahan ini mencipta jadual sementara dalam ingatan dan mengisinya dengan baris yang terhasil daripada pertanyaan. Ia menyerupai jadual biasa tetapi berada dalam RAM.
Memahami Jadual Sementara dalam PostgreSQL
Jadual sementara boleh dilihat dalam sesi semasa dan hilang apabila sesi ditamatkan. Sebagai alternatif, anda boleh menentukan 'ON COMMIT DROP' supaya ia hilang pada penghujung urus niaga.
Alternatif kepada Jadual Sementara
Untuk jadual sementara dinamik, pertimbangkan untuk menggunakan 'CIPTA PANDANGAN,' yang menyediakan petikan data yang sentiasa dikemas kini. Walau bagaimanapun, 'BUAT JADUAL SEBAGAI' lebih disukai untuk syot kilat statik.
Walaupun 'PILIH KE DALAM' juga boleh membuat jadual sementara, ia dianggap tidak digalakkan. Sebaliknya, gunakan 'BUAT JADUAL SEBAGAI.' 'BUAT JADUAL SUKA' hanya menyalin struktur jadual dan bukan data.
Untuk jadual sementara yang digunakan dalam satu pertanyaan sahaja, 'jadual terbitan' dalam CTE atau subkueri menawarkan alternatif yang ringan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta dan Mengisi Jadual Sementara dalam SQL dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!