Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте ! Вот сел изучать MySQL. Читаю по Интуиту. Возник вопрос: вообщем требуется заполнить таблицу. Чтобы не вводить в командой строке MySQL постоянно INSERT, предложено скопировать файлик employee.dat в каталог c:\mysql\bin. Далее посоветовали проверить запущен ли MySQL, и потом выполнить команду mysql employees <employee.dat. И по идее таблица должна заполниться.
Итак, где выполнять эту команду (mysql employees <employee.dat) ?
Как я понял, можно зайти тоталом в директорию, куда надо кинуть файл, и в командой строке тотала написать эту команду и тискнуть ввод. Но после нажатия вылетает окошко, в котором написано: "ERROR 1045 (28000): Access danied for user "ODBC"@localhost (using password: no)". Английский я знаю, посему фразу понимаю. Объясните, что делать ? Заранее спасибо !
P.S. Ещё расскажите как кто наполняет таблицы, чтобы не приходилось всё писать руками
Неактивен
mysql -u root -p employees <employee.dat (после нажатия Enter предложит ввести пароль)
или
mysql -u root -pпароль_рута employees <employee.dat
Неактивен
И еще вот вопросы про заполнение таблиц:
1) Есть две таблицы с однинаковым количеством строк. Как занести данные из одного из полей одной таблицы в одно из полей другой? То есть "скопировать" столбец из одной таблицы в другую?
2) Пусть в таблице есть 3 поля. И есть 3 файла .txt, содержащие данные каждого из полей, которые надо занести в таблицу. Возможно ли сначала заполнить 1й столбец из первого файла, потом 2й из второго (то есть insert в конец таблицы, а update рядом с данными первого столбца) и т.д.?
PS Спасибо за форум, очень интересный и толковый.
Неактивен
1) UPDATE table1,table2 SET table1.col1=table2.col2 WHERE table1.id=table2.id;
http://dev.mysql.com/doc/refman/5.4/en/update.html
2) Сначала заполняем из первого файла способом, указанным ранее в этой теме, или LOAD DATA INFILE
Затем из второго файла заносим данные во временную табличку xxx, из которой их переносим в основную (см пункт 1). Очищаем табличку xxx и повторяем операцию с третьим файлом.
Неактивен
Спасибо! Ура! Всё у меня получается!)
Неактивен
А подскажите пожалуйста, как быть в том случае, если у меня таблицы находятся в разных БД, но на одном сервере, и у меня нет поля id
Неактивен
xreal написал:
А подскажите пожалуйста, как быть в том случае, если у меня таблицы находятся в разных БД, но на одном сервере
Используйтев запросе полное имя таблицы, т.е. `имя базы`.`имя таблицы`
xreal написал:
и у меня нет поля id
Используйте поле или комбинацию полей, которые однозначно определяют строку.
Неактивен
А можно прикрепить в `имя базы`.`имя таблицы`.`ЕЩЁ_И_ЭЛЕМЕНТ` ?
Неактивен
да
Неактивен
Копирую данные из определённых столбцов структурно одинаковых таблиц, располагающихся на разных серверах. Первая таблица с данными, вторая пустая.
Подскажите пожалуйста можно ли так делать:
Отредактированно xreal (07.06.2012 23:30:55)
Неактивен
$sql = "SELECT ".$str." FROM ".$dbName.".".$temp;
$field_data = mysql_query($sql) or die(mysql_error());
Неактивен
Мне кажется, что делать вот так:
Неактивен
Второй запрос тоже нужно преобразовать аналогично тому как преобразован первый.
Насчет "кажется", практика - критерий истины.
Неактивен
Переделал запрос, всё равно не работает, может всё-таки всё дело в $columns? Переменные, которые в неё входят воспринимаются как обычная строка?
Неактивен
Да. Нужно переделать
$columns = "$row['column1'], $row['column2'], $row['column3']"
в
$columns = $row['column1'].", ".$row['column2'].", ".$row['column3']
Неактивен