Чтобы ответить на вопрос с заголовком, то есть для метаданных всей базы данных, а не отдельных таблиц, есть несколько вариантов, в зависимости от имеющихся у вас привилегий.
Самый прямой путь -создать хранимую функцию, для которой требуется привилегия CREATE ROUTINE
.например,
mysql> CREATE FUNCTION `mydb`.DB_VERSION() RETURNS VARCHAR(15)
RETURN '1.2.7.2861';
Query OK, 0 rows affected (0.03 sec)
mysql> SELECT `mydb`.DB_VERSION();
+--------------+
| DB_VERSION() |
+--------------+
| 1.2.7.2861 |
+--------------+
1 row in set (0.06 sec)
Если ваши права ограничивают вас только созданием таблиц, вы можете создать простую таблицу и поместить метаданные в качестве значений по умолчанию.Нет необходимости хранить какие-либо данные в таблице.
mysql> CREATE TABLE `mydb`.`db_metadata` (
`version` varchar(15) not null default '1.2.7.2861');
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW COLUMNS FROM `mydb`.`db_metadata`;
+---------+-------------+------+-----+------------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+------------+-------+
| version | varchar(15) | NO | | 1.2.7.2861 | |
+---------+-------------+------+-----+------------+-------+
1 row in set (0.00 sec)