Поиск

Найдено 13 статьи по слову "sql"

Как сделать дамп mysql и развернуть базу из дампа в консоли?

Дамп БД - это резервная копия базы данных.

Делаем дамп:

$ mysqldump -uLOGIN -pPASSWORD DATABASENAME > dump.sql

Разворачиваем из дампа:

$ mysql -uLOGIN -pPASSWORD DATABASENAME < dump.sql
bash

Добавляем только несуществующие записи в таблицу (SQL)

Допустим, у нас есть таблица tags такого вида (ниже привожу sql-запрос для ее создания):

CREATE TABLE `tags` (
    `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
    `tag_name` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
    `uid` int(11) unsigned NOT NULL,
    PRIMARY KEY (`id`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

Ее смысл в том, что для каждого пользователя мы можем задавать отдельный набор тэгов, которые будут отображаться только ему. Кстати, отображать их удобно через jquery UI autocomplete multiple .

Также, когда мы передаем какой то набор сохраняемых тэгов для выбранного пользователя (опустим моменты разрезания, тримминг пробелов и т.д.), мы не хотим, чтобы повторялись одинаковые значения. Этого можно добиться, сделав следующее.

Сначала сделаем уникальный ключ из двух полей - tag_name и uid.

ALTER TABLE tags ADD unique index(tag_name,uid);

А затем мы можем добавлять несуществующие записи таким образом (обратите внимание на слово IGNORE - оно позволяет не показывать ошибку, когда создаются дубликаты уже существующих записей, а просто пропускать ее):

INSERT IGNORE INTO tags(tag_name, uid) VALUES ('my_tag1', 1), ('my_tag2', 1), ('мой тэг', 1)
sql

Table X is marked as crashed and should be repaired

Это ошибка обычно возникает из-за неожиданной перезагрузки СУБД.

В PhpMyAdmin или MySQL-консоли выполните следующий запрос:

REPAIR TABLE `mytable`

где mytable - таблица, указанная в ошибке.

sql