Rumah >pangkalan data >tutorial mysql >Bagaimana untuk mencipta fungsi dalam Mysql

Bagaimana untuk mencipta fungsi dalam Mysql

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBke hadapan
2023-05-30 10:34:053613semak imbas

    Cara membuat fungsi dalam Mysql

    DELIMITER $$
    DROP FUNCTION IF EXISTS genPerson$$
    CREATE FUNCTION genPerson(name varchar(20)) RETURNS varchar(50)
    BEGIN
      DECLARE str VARCHAR(50) DEFAULT '';
      SET @tableName=name;
      SET str=CONCAT('create table ', @tableName,'(id int, name varchar(20));');
      return str;
    END $$
    DELIMITER ;

    Setakat sql dalam gambar di atas adalah berkenaan

    (1) DELIMITER $ $ mentakrifkan penamat. Penamat lalai MySQL ialah koma bertitik, tetapi koma bertitik boleh digunakan dalam badan fungsi. Untuk mengelakkan konflik, penamat tambahan perlu ditakrifkan.

    (2) GUGURKAN FUNGSI JIKA WUJUD genPerson$$ Jika fungsi genPerson sudah wujud, padamkannya.

    (3) CREATE FUNCTION mencipta fungsi genPerson Parameter fungsi ialah nama dan nilai pulangan ialah varchar(50).

    (4) Badan fungsi diletakkan di antara BEGIN dan END.

    (5) DECLARE mengisytiharkan pembolehubah, jenis str ialah varchar(50), dan nilai lalainya kosong.

    (6) CONCAT menggabungkan berbilang rentetan.

    (7) RETURN mengembalikan str rentetan yang disambung.

    Bagaimana untuk mencipta fungsi dalam Mysql

    Seperti yang dapat dilihat daripada hasil pelaksanaan

    Bagaimana untuk mencipta fungsi dalam Mysql

    Mysql tidak boleh mencipta kod ralat fungsi 1418

    dalam Apabila mencipta fungsi dalam mysql,

    kod ralat dilaporkan: 1418

    Fungsi ini tidak mempunyai DETERMINISTIC, NO SQL, atau READS SQL DATA dalam pengisytiharannya dan pengelogan binari didayakan (anda *mungkin* mahu menggunakan pembolehubah log_bin_trust_function_creators yang kurang selamat) Ini bermakna fungsi cipta tidak dihidupkan.

    Penyelesaian

    1 Periksa sama ada fungsi cipta dihidupkan

    show variables like '%func%';
    -------------------------------------------
    +---------------------------------+-------+
    | Variable_name                   | Value |
    +---------------------------------+-------+
    | log_bin_trust_function_creators | OFF   |
    +---------------------------------+-------

    2 Hidupkan

    SET GLOBAL log_bin_trust_function_creators = 1;

    3

    Atas ialah kandungan terperinci Bagaimana untuk mencipta fungsi dalam Mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan:
    Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam