[ACCEPTED]-How do I store XML data into a mysql database? I don't want foreign keys like crazy-data-structures

Accepted answer
Score: 32

The "regular" way is to store XML in a CLOB 3 (Character Large Object) and MySQL supports 2 CLOB with 4 data types:

  • TINYTEXT - A CLOB column with a maximum length of 255 (2**8 - 1) characters.
  • TEXT - A CLOB column with a maximum length of 65,535 (2**16 - 1) characters.
  • MEDIUMTEXT - A CLOB column with a maximum length of 16,777,215 (2**24 - 1) characters.
  • LONGTEXT - A CLOB column with a maximum length of 4,294,967,295 or 4GB (2**32 - 1) characters.

Using one or the 1 other depends on your needs.

Score: 6

It all depends on what you want your database 1 to do with the XML.

  • If you just want to store the XML document for later retrieval, just use a blob or text field. Also check the MySQL docs.
  • If you are trying to dump/import a model, use mysqldump.
  • If you are planning to query on XML, you should probably be using a native XML database such as eXist-db instead.
Score: 3

I would recommend using a database that 4 has a native XML datatype. Postgres will 3 do this, for example. This will make life 2 much easier for you if you are planning 1 to lots of work with XML in your database.

More Related questions