Documentation Home
MySQL 9.5 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 41.4Mb
PDF (A4) - 41.5Mb
Man Pages (TGZ) - 272.3Kb
Man Pages (Zip) - 378.3Kb
Info (Gzip) - 4.1Mb
Info (Zip) - 4.1Mb


MySQL 9.5 Reference Manual  / ...  / SQL Statements  / Data Definition Statements  /  CREATE LIBRARY Statement

15.1.19 CREATE LIBRARY Statement

CREATE LIBRARY [IF NOT EXISTS] [database.]library    LANGUAGElanguage    [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 beJavaScript orWasm (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. Thecode string can be dollar-quoted or single-quoted; it can also be double-quoted as long asANSI_QUOTES SQL mode is not set.

To executeCREATE LIBRARY, the user must have theCREATE ROUTINE privilege.

To use a library created within a stored program using this statement, the user must have theEXECUTE 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 namedlib1 in thejslib database. The SELECT statement that follows it displays the row in the Information SchemaLIBRARIES 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: lib1LIBRARY_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@localhost1 row in set (0.00 sec)

In the following example, the first statement creates a WebAssembly library namedlib1 in thewasmlib database. This example uses the Base64 encoding of the compiled WebAssembly code. TheSELECT statement that follows it displays the row in the Information SchemaLIBRARIES 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: lib1LIBRARY_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 namedlib2 in thewasmlib database. This example uses the hexadecimal encoding of the compiled WebAssembly code. TheSELECT statement that follows it displays the row in the Information SchemaLIBRARIES 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: lib2LIBRARY_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@localhost2 rows in set (0.000 sec)

SeeSection 27.3.8, “Using JavaScript Libraries”, as well asSection 27.3.9, “Using WebAssembly Libraries”, for more information and examples.