MySQL 9.5 Reference Manual Including MySQL NDB Cluster 9.5
CREATE LIBRARY [IF NOT EXISTS] [database.]libraryLANGUAGElanguage[COMMENT "comment_text"] AScode
This statement creates a library in the named database, if any. If
no database is specified, the library is created in the current
database. The library name may be any valid SQL identifier.
LANGUAGE must be JavaScript
or Wasm (case-insensitive).
COMMENT is optional. The text of the comment
must be quoted.
code is a string consisting of
JavaScript code, or Base64 or hexadecimal encoding of the compiled
WebAssembly code, which is checked for validity at creation time.
Invalid code causes the statement to be rejected with an error.
The code string can be dollar-quoted or
single-quoted; it can also be double-quoted as long as
ANSI_QUOTES SQL mode is not set.
To execute CREATE LIBRARY, the user must have
the CREATE ROUTINE privilege.
To use a library created within a stored program using this
statement, the user must have the
EXECUTE privilege. This is checked
whenever a function or procedure using the library is created.
In the following example, the first statement creates a JavaScript
library named lib1 in the
jslib database. The SELECT statement that
follows it displays the row in the Information Schema
LIBRARIES table corresponding to the
library just created.
mysql>CREATE LIBRARY IF NOT EXISTS jslib.lib1 LANGUAGE JAVASCRIPT->AS $$$>export function f(n) {$>return n$>}$>$$;Query OK, 0 rows affected (0.02 sec) mysql>SELECT * FROM information_schema.LIBRARIES-> WHERE LIBRARY_SCHEMA='jslib'\G *************************** 1. row *************************** LIBRARY_CATALOG: def LIBRARY_SCHEMA: jslib LIBRARY_NAME: lib1 LIBRARY_DEFINITION: export function f(n) { return n } LANGUAGE: JAVASCRIPT CREATED: 2024-12-16 16:36:44 LAST_ALTERED: 2024-12-16 16:36:44 SQL_MODE: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE, NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION CREATOR: me@localhost 1 row in set (0.00 sec)
In the following example, the first statement creates a WebAssembly
library named lib1 in the
wasmlib database. This example uses the Base64 encoding of the compiled WebAssembly code. The SELECT
statement that follows it displays the row in the Information
Schema LIBRARIES table corresponding
to the library just created.
mysql>CREATE LIBRARY IF NOT EXISTS wasmlib.lib1 LANGUAGE WASM AS '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';mysql>SELECT * FROM information_schema.LIBRARIES-> WHERE LIBRARY_SCHEMA='wasmlib'\G *************************** 1. row *************************** LIBRARY_CATALOG: def LIBRARY_SCHEMA: wasmlib LIBRARY_NAME: lib1 LIBRARY_DEFINITION: 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 LANGUAGE: WASM CREATED: 2025-10-22 15:42:12 LAST_ALTERED: 2025-10-22 15:42:12 SQL_MODE: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES, NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION LIBRARY_COMMENT: CREATOR: me@localhost
In the following example, the first statement creates a WebAssembly
library named lib2 in the
wasmlib database. This example uses the hexadecimal encoding of the compiled WebAssembly code. The SELECT
statement that follows it displays the row in the Information
Schema LIBRARIES table corresponding
to the library just created.
mysql>CREATE LIBRARY IF NOT EXISTS wasmlib.lib2 LANGUAGE WASM AS X'0061736d0100000001270760037f7f7f017f60000060017f017f60017f0060037f7e7f017e6000017f60047f7f7f7f017f02460216776173695f736e617073686f745f70726576696577310970726f635f65786974000316776173695f736e617073686f745f70726576696577310866645f77726974650006030f0e01010103050201000204020302050405017001050505060101820282020608017f0141d091040b07940107066d656d6f727902000d7072696e745f6d6573736167650003195f5f696e6469726563745f66756e6374696f6e5f7461626c650100065f73746172740004195f656d736372697074656e5f737461636b5f726573746f7265000d175f656d736372697074656e5f737461636b5f616c6c6f63000e1c656d736372697074656e5f737461636b5f6765745f63757272656e74000f090a010041010b04020a090b0c01070af70c0e0300010b040010080b3e01017f100841b80928020022000440034020001005200028023822000d000b0b41bc09280200100541a009280200100541bc09280200100541001000000b5301027f02402000450d00200028024c1a2000280214200028021c47044020004100410020002802241100001a0b2000280204220120002802082202460d002000200120026bac410120002802281104001a0b0b6301017f41d80841d808280200220041016b200072360200419008280200220041087104404190082000412072360200417f0f0b419408420037020041ac0841bc08280200220036020041a408200036020041a008200041c0082802006a36020041000ba60501067f024041a0082802002202047f20020510060d0141a0082802000b41a40828020022016b2000490440419008418008200041b4082802001100000f0b0240024020004541e008280200410048720d0020002103034020034180086a220241016b2d0000410a470440200341016b22030d010c020b0b419008418008200341b40828020011000022012003490d02200020036b210041a40828020021010c010b4180082102410021030b024020004180044f044020000440200120022000fc0a00000b0c010b200020016a2104024020012002734103714504400240200141037145200045720d000340200120022d00003a0000200241016a2102200141016a2201410371450d0120012004490d000b0b2004417c7121050240200441c000490d002001200541406a22064b0d0003402001200228020036020020012002280204360204200120022802083602082001200228020c36020c2001200228021036021020012002280214360214200120022802183602182001200228021c36021c2001200228022036022020012002280224360224200120022802283602282001200228022c36022c2001200228023036023020012002280234360234200120022802383602382001200228023c36023c200241406b2102200141406b220120064d0d000b0b200120054f0d01034020012002280200360200200241046a2102200141046a22012005490d000b0c010b20044104492000410449720d00200441046b21060340200120022d00003a0000200120022d00013a0001200120022d00023a0002200120022d00033a0003200241046a2102200141046a220120064d0d000b0b200120044904400340200120022d00003a0000200241016a2102200141016a22012004470d000b0b0b41a40841a40828020020006a360200200020036a21010b20010bb50201037f41dc082802001a418008210103402001220041046a21014180828408200028020022026b20027241808182847871418081828478460d000b03402000220141016a210020012d00000d000b0240027f20014180086b2200027f41dc082802004100480440200010070c010b200010070b22012000460d001a20010b2000470d00024041e008280200410a460d0041a408280200220041a008280200460d0041a408200041016a3602002000410a3a00000c010b230041106b220024002000410a3a000f0240024041a0082802002201047f20010510060d0241a0082802000b41a4082802002201460d0041e008280200410a460d0041a408200141016a3602002001410a3a00000c010b4190082000410f6a410141b4082802001100004101470d0020002d000f1a0b200041106a24000b0bd80201077f230041206b220324002003200028021c2204360210200028021421052003200236021c200320013602182003200520046b2201360214200120026a2105200341106a210141022107027f024002400240200028023c200141022003410c6a1001100c0440200121040c010b03402005200328020c2206460d0220064100480440200121040c040b2001410841002006200128020422084b22091b6a220420062008410020091b6b220820042802006a3602002001410c410420091b6a2201200128020020086b360200200520066b2105200028023c20042201200720096b22072003410c6a1001100c450d000b0b2005417f470d010b2000200028022c220136021c200020013602142000200120002802306a36021020020c010b2000410036021c2000420037031020002000280200412072360200410020074102460d001a200220042802046b0b2101200341206a240020010b040041000b040042000b1500200045044041000f0b41b0092000360200417f0b0600200024000b1000230020006b4170712200240020000b040023000b0b4f07004180080b0c54686973206973205741534d004190080b010500419c080b01020041b4080b0e0300000004000000c804000000040041cc080b01010041dc080b05ffffffff0a0041a0090b021004';mysql>SELECT * FROM information_schema.LIBRARIES-> WHERE LIBRARY_SCHEMA='wasmlib' AND LIBRARY_NAME='lib2'\G *************************** 1. row *************************** LIBRARY_CATALOG: def LIBRARY_SCHEMA: wasmlib LIBRARY_NAME: lib2 LIBRARY_DEFINITION: LANGUAGE: WASM CREATED: 2025-10-23 11:07:18 LAST_ALTERED: 2025-10-23 11:07:18 SQL_MODE: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES, NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION LIBRARY_COMMENT: CREATOR: me@localhost 2 rows in set (0.000 sec)
See Section 27.3.8, “Using JavaScript Libraries”, as well as Section 27.3.9, “Using WebAssembly Libraries”, for more information and examples.