Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SQL::Translator::ParseUseryContributed Perl DSQL::Translator::Parser::MySQL(3)

NAME
       SQL::Translator::Parser::MySQL -	parser for MySQL

SYNOPSIS
	 use SQL::Translator;
	 use SQL::Translator::Parser::MySQL;

	 my $translator	= SQL::Translator->new;
	 $translator->parser("SQL::Translator::Parser::MySQL");

DESCRIPTION
       The grammar is influenced heavily by Tim	Bunce's	"mysql2ora" grammar.

       Here's the word from the	MySQL site
       (http://www.mysql.com/doc/en/CREATE_TABLE.html):

	 CREATE	[TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)]
	 [table_options] [select_statement]

	 or

	 CREATE	[TEMPORARY] TABLE [IF NOT EXISTS] tbl_name LIKE	old_table_name;

	 create_definition:
	   col_name type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT]
		     [PRIMARY KEY] [reference_definition]
	   or	 PRIMARY KEY (index_col_name,...)
	   or	 KEY [index_name] (index_col_name,...)
	   or	 INDEX [index_name] (index_col_name,...)
	   or	 UNIQUE	[INDEX]	[index_name] (index_col_name,...)
	   or	 FULLTEXT [INDEX] [index_name] (index_col_name,...)
	   or	 [CONSTRAINT symbol] FOREIGN KEY [index_name] (index_col_name,...)
		     [reference_definition]
	   or	 CHECK (expr)

	 type:
		 TINYINT[(length)] [UNSIGNED] [ZEROFILL]
	   or	 SMALLINT[(length)] [UNSIGNED] [ZEROFILL]
	   or	 MEDIUMINT[(length)] [UNSIGNED]	[ZEROFILL]
	   or	 INT[(length)] [UNSIGNED] [ZEROFILL]
	   or	 INTEGER[(length)] [UNSIGNED] [ZEROFILL]
	   or	 BIGINT[(length)] [UNSIGNED] [ZEROFILL]
	   or	 REAL[(length,decimals)] [UNSIGNED] [ZEROFILL]
	   or	 DOUBLE[(length,decimals)] [UNSIGNED] [ZEROFILL]
	   or	 FLOAT[(length,decimals)] [UNSIGNED] [ZEROFILL]
	   or	 DECIMAL(length,decimals) [UNSIGNED] [ZEROFILL]
	   or	 NUMERIC(length,decimals) [UNSIGNED] [ZEROFILL]
	   or	 CHAR(length) [BINARY]
	   or	 VARCHAR(length) [BINARY]
	   or	 DATE
	   or	 TIME
	   or	 TIMESTAMP
	   or	 DATETIME
	   or	 TINYBLOB
	   or	 BLOB
	   or	 MEDIUMBLOB
	   or	 LONGBLOB
	   or	 TINYTEXT
	   or	 TEXT
	   or	 MEDIUMTEXT
	   or	 LONGTEXT
	   or	 ENUM(value1,value2,value3,...)
	   or	 SET(value1,value2,value3,...)

	 index_col_name:
		 col_name [(length)]

	 reference_definition:
		 REFERENCES tbl_name [(index_col_name,...)]
			    [MATCH FULL	| MATCH	PARTIAL]
			    [ON	DELETE reference_option]
			    [ON	UPDATE reference_option]

	 reference_option:
		 RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT

	 table_options:
		 TYPE =	{BDB | HEAP | ISAM | InnoDB | MERGE | MRG_MYISAM | MYISAM }
	 or	 ENGINE	= {BDB | HEAP |	ISAM | InnoDB |	MERGE |	MRG_MYISAM | MYISAM }
	 or	 AUTO_INCREMENT	= #
	 or	 AVG_ROW_LENGTH	= #
	 or	 [ DEFAULT ] CHARACTER SET charset_name
	 or	 CHECKSUM = {0 | 1}
	 or	 COLLATE collation_name
	 or	 COMMENT = "string"
	 or	 MAX_ROWS = #
	 or	 MIN_ROWS = #
	 or	 PACK_KEYS = {0	| 1 | DEFAULT}
	 or	 PASSWORD = "string"
	 or	 DELAY_KEY_WRITE = {0 |	1}
	 or	 ROW_FORMAT= { default | dynamic | fixed | compressed }
	 or	 RAID_TYPE= {1 | STRIPED | RAID0 } RAID_CHUNKS=#  RAID_CHUNKSIZE=#
	 or	 UNION = (table_name,[table_name...])
	 or	 INSERT_METHOD=	{NO | FIRST | LAST }
	 or	 DATA DIRECTORY="absolute path to directory"
	 or	 INDEX DIRECTORY="absolute path	to directory"

       A subset	of the ALTER TABLE syntax that allows addition of foreign
       keys:

	 ALTER [IGNORE]	TABLE tbl_name alter_specification [, alter_specification] ...

	 alter_specification:
		 ADD [CONSTRAINT [symbol]]
		 FOREIGN KEY [index_name] (index_col_name,...)
		    [reference_definition]

       A subset	of INSERT that we ignore:

	 INSERT	anything

ARGUMENTS
       This parser takes a single optional parser_arg "mysql_parser_version",
       which provides the desired version for the target database. Any
       statement in the	processed dump file, that is commented with a version
       higher than the one supplied, will be stripped.

       The default "mysql_parser_version" is set to the	conservative value of
       40000 (MySQL 4.0)

       Valid version specifiers	for "mysql_parser_version" are listed here

       More information	about the MySQL	comment-syntax:
       <http://dev.mysql.com/doc/refman/5.0/en/comments.html>

AUTHOR
       Ken Youens-Clark	<kclark@cpan.org>, Chris Mungall <cjm@fruitfly.org>.

SEE ALSO
       Parse::RecDescent, SQL::Translator::Schema.

perl v5.32.0			  2020-04-19 SQL::Translator::Parser::MySQL(3)

NAME | SYNOPSIS | DESCRIPTION | ARGUMENTS | AUTHOR | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=SQL::Translator::Parser::MySQL&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help