- Сообщения
- 864
- Реакции
- 309
mariadb-dump: Error 1034: Index for table 'tracks_OLD' is corrupt; try to repair it when dumping table `tracks_OLD` at row: 1369951
SQL:
show create table tracks;
SQL:
CREATE TABLE `tracks_DD` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`track_h` varchar(255) NOT NULL,
`meta_title` varchar(255) NOT NULL,
`meta_description` varchar(300) NOT NULL,
`meta_keywords` varchar(255) DEFAULT NULL,
`url` varchar(255) NOT NULL,
`poster` varchar(255) DEFAULT NULL,
`album` varchar(255) DEFAULT NULL,
`album_id` varchar(255) DEFAULT NULL,
`artist` varchar(255) DEFAULT NULL,
`artist_id` varchar(255) DEFAULT NULL,
`year` varchar(4) DEFAULT NULL,
`video` varchar(255) DEFAULT NULL,
`description` text DEFAULT NULL,
`text` text DEFAULT NULL,
`tid` varchar(255) DEFAULT NULL,
`filelink` varchar(255) DEFAULT NULL,
`size` varchar(255) DEFAULT NULL,
`time` varchar(10) NOT NULL,
`time_seconds` int(11) DEFAULT NULL,
`bitrate` varchar(255) DEFAULT NULL,
`play_count` int(11) DEFAULT 0,
`genres` varchar(255) DEFAULT NULL,
`likes` int(11) DEFAULT 0,
`views` int(11) DEFAULT 0,
`blocked` tinyint(1) NOT NULL DEFAULT 0,
`hash` varchar(32) NOT NULL,
`file_id` varchar(32) DEFAULT NULL,
`parser_ident` varchar(20) DEFAULT NULL,
`created_date` timestamp NOT NULL DEFAULT current_timestamp(),
`views_date` timestamp NOT NULL DEFAULT current_timestamp(),
`position` int(11) DEFAULT NULL,
`release_id` int(11) DEFAULT NULL,
`artist_template` varchar(200) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `url` (`url`),
UNIQUE KEY `hash` (`hash`),
KEY `track_d_url` (`url`),
KEY `track_d_name` (`name`),
KEY `artist_d_id` (`artist_id`),
KEY `tracks_d__release_id` (`release_id`),
KEY `tracks_d__play_count` (`play_count`),
KEY `tracks_d_year_index` (`year`),
KEY `tracks_d_file_id_index` (`file_id`),
KEY `tracks_d_likes_index` (`likes`),
KEY `tracks_d_views_index` (`views`),
FULLTEXT KEY `name` (`name`),
FULLTEXT KEY `artist` (`artist`),
CONSTRAINT `tracks_d_releases_id_fk` FOREIGN KEY (`release_id`) REFERENCES `releases` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=1539195 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
Bash:
#!/bin/bash
# Установка параметров подключения к базе данных
source_host="127.0.0.1"
source_user="music_root"
pass="OCysztRT7G"
source_db="nepsa_db"
source_table="tracks"
target_table="tracks_DD"
target_db="nepsa_db"
if [ "xxx$pass" = "xxx" ]
then
pass_cmd=""
else
pass_cmd="-p$pass"
fi
# Получение максимального значения автоинкрементного поля
max_id=$(/usr/bin/mariadb -h $source_host -u $source_user $pass_cmd -D $source_db -se "SELECT MAX(id) FROM $source_table")
# Копирование данных
for ((id=1; id<=max_id; id++))
do
# Вставка строки в целевую таблицу
/usr/bin/mariadb -h $source_host -u $source_user $pass_cmd -D $target_db -se "INSERT IGNORE INTO \`$target_table\` SELECT * FROM \`$source_table\` WHERE id=$id"
progress=$(((id / max_id) * 100))
echo "Скопирован ID $id из $max_id, $progress %"
done
Последнее редактирование: