9. MySQL 8 - INSERT и LOAD DATA

preview_player
Показать описание
INSERT - оператор вставки данных в MySQL таблицы. Позволяет вставить одну или несколько строк за один вызов. LOAD DATA - тоже позволяет загружать данные в таблицы, но делает это гораздо быстрый. Потому при больших объёмах лучше использовать его.
Рекомендации по теме
Комментарии
Автор

Лучшее, что я нашел на русском языке. Круто, спасибо!

СергейЯрмошук-цл
Автор

Госпаде, наконец-то нашёлся вменяемый автор по IT на русском Ютубе, всё максимально понятно, уже десятое Ваше видео смотрю залпом. Спасибо за Ваш труд!

vtrs
Автор

Спасибо на ваших уроках, очень помогает повторить базу данных

Олександр-птж
Автор

Короче не дождался я пока про Workbench рассказывать начнут. Скачал OpenServer, запустил PHPmyadmin на localhost, нашёл там папку нужную с mysql.exe и mysqld.exe, и с помощью танцев с бубном, по аналогии первого урока, подключился к нему через консоль, закинул туда базу world.sql и всё заработало блин!!! Доволен как слон. )

yakut
Автор

Здравствуйте! Помогите пожалуйста!! За место Русских символов в консоле отображаются вопросительные знаки

niknig
Автор

Аххахах Надо было не смотреть, отвернуться на 5 секунд.... Интересно live code смотреть )
и как ни странно у меня всё работает! ураа!!

yakut
Автор

У меня проблема с load xml, с load data еще не пробовал: при попытке импорта в city из xml говорит об ограниченном доступе, выдаёт или ошибку 2068 или 3948 ( убунту 21, MySQL 8, secure-file-priv = " " поправил и local_infile=0 тоже)

יהונתןוולושין
Автор

а почему у вас при вставке с LOAD автоинкремент перескочил с 44 на 48 ?

АльбертИванов-цх
Автор

У меня вот такая ошибка, не пойму что мешает:

17:53:10 Load data infile INTO TABLE table1 fields terminated by ', ' lines terminated by '\n'

Error Code: 1290. The MySQL server is running with the --secure-file-priv option so it cannot execute this statement 0.000 sec

17:53:10 Загрузить файл с данными ' В ТАБЛИЦУ поля table1, заканчивающиеся на ', ' строки, заканчивающиеся на '\n'

Код ошибки: 1290. Сервер MySQL запущен с параметром --secure-file-priv, поэтому он не может выполнить этот оператор 0.000 сек

sandayep
Автор

почему при load переносится только одна строка?

кирпичкирпич-ъы
Автор

Такая вот ошибка ERROR 1146 (42S02): Table 'test34.tb1' doesn't exist, база выбрана test34, в ней имеется таблица с названием tb1.

АминаТимурзиева-зн
Автор

Ошибка при загрузке из файла ERROR 1366 (HY000): Incorrect integer value: '\FEFFN' for column 'id' at row 1

ЯковЯврач
Автор

Привет! Спасибо за вашу работу! Что-то не могу победить secure_file_priv. Прописываю путь к папке, но всё равно ошибка 1290. По документации не получается разобраться. Что может быть не так? Я попробовал загрузить файл из стандартной папки uploads, то же самое...Получилось только после присвоения пустой строки переменной, т.е. отключения этого механизма. Нот при этом она проглотила все слэши, слила весь путь в одну строку и положила файл в корень диска. Что-то не так со слэшами, настройка какая-то?

ЕвгенийБондаренко-гу
Автор

Добрый день!

Большое спасибо за доступные и интересные уроки.
Делюсь своим опытом. Тк предложенный здесь вариант загрузки внешней таблицы не сработал.

Таблица:

create table tbl3 (
id int primary key auto_increment,
txt varchar(50) not null default ' ',
dt datetime,
col4 ENUM('case1', 'case2', 'case3', 'case40')
);

Запрос:

create table tbl3 (
id int primary key auto_increment,
txt varchar(50) not null default ' ',
dt datetime,
col4 ENUM('case1', 'case2', 'case3', 'case40')
);

Ошибка:

ERROR 1300 (HY000): Invalid utf8mb4 character string: ''

Запрос, который сработал:

LOAD DATA
INFILE '/Users/tim/Documents/1.txt'
INTO TABLE tbl3
FIELDS TERMINATED BY ', '
LINES TERMINATED BY '\n' (txt, dt, col4);

Было здорово услышать ваши комментарии. Спасибо.

NEASHT
Автор

@htmllab здравствуйте!
Спасибо за ваши уроки.
Я знаю SQL менее чем никак, но он мне очень нужен.
Столкнулся со следующей проблемой

mysql> INSERT INTO tbl1
-> VALUES
-> (NULL, 'qwerty', now(), 'c2'),
-> (NULL, 'foo', now(), 'c3'),
-> (NULL, 'Ggeece', now(), 'c4'),
-> (NULL, 'ride', now(), 'c5')
-> ;
ERROR 1265 (01000): Data truncated for column 'col4' at row 1

mysql> INSERT INTO tbl1
-> VALUES
-> (NULL, 'qwerty', now(), 'case2')
-> ;
Query OK, 1 row affected (0.01 sec)

mysql>


Повторял все ваши действия.
Но, при этом, если я вставляю группу строк, то получаю ошибку. Но, если попробовать вставить одну строку - проблем нет.
Прошу помочь.

korvinfromamber
Автор

Вопрос к LOAD DATA. Вот текстовый файл, из которого хочу заполнять табличку:







Код, который пишу в командной строке:
LOAD DATA
INFILE
INTO TABLE tbl1
FIELDS TERMINATED BY ', '
LINES TERMINATED BY '\n';
Сначала получила ошибку: ERROR 1265 (01000): Data truncated for column 'col4' at row 1
Поменяла кодировку текстового загрузочного файлика на UTF-8, теперь не нравится id, типа фигню предложила туда писать, вместо целочисленного значения: ERROR 1366 (HY000): Incorrect integer value: '\FEFFN' for column 'id' at row 1
Где что исправить, подскажите пожалуйста?

oksanaulianchenko
Автор

Действительно отличные уроки. Но вот не ясно как начать использовать SSMS, имя сервера не записали и как его найти не ясно(

YuliaNovack
Автор

Спасибо за ваши уроки, но так и не могу избавиться от ошибки (не могу работать с файлами) "ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement", много перерыл нечего не помогло(

ОлегВикторович-хы
Автор

Привет, подскажите, в чем проблема
mysql> LOAD DATA
-> INFILE 'C:/mysql/folder/data.txt'
-> INTO TABLE tbl1
-> FIELDS TERMINATED BY ', '
-> LINES TERMINATED BY '\N';
ERROR 1265 (01000): Data truncated for column 'col4' at row 1

Nowello
Автор

Я ХАПАНУЛА АЖ 2 ОШИБКИ
Сначала 1290 --secure-file-priv, хотя в файлике my.ini всё прекрасно и че не работает не понятно. Потом в пути 'C:\MySQL\folder\data.txt я поменяла слэш '\' на слеши '/'
Следом вылезла другая ошибка ERROR 1265 (01000): Data truncated for column 'col4' at row 1
Перепробовала всё, что советовали в комментах, ничего. по всякому уже меняла в самом файле и тупо решила в строке после case1 поставить везде запятые

\N, doroj, 2023-09-30, case1,
\N, vmrog, 2023-09-30, case2,
\N, sksfe, 2023-09-30, case3,
\N, qllwm, 2023-09-30, case3,

и вот так всё заработало

SQL удивителен, поражает как у одного человека всё работает с первого раза, а у тебя 1в1 и нифига)
Мой мозг за время декрета ещё так ни разу не скрипел)))

murmurkis