таблица mysqldump, не выводя первичный ключ

Используйте это:

import pandas as pd
data = pd.read_csv(filename) # You can also add parameters such as header, sep, etc.
array = data.values

data тип данных и использует значения для получения ndarray. Вы также можете получить список с помощью array.tolist().

37
задан OMG Ponies 27 December 2009 в 03:24
поделиться

5 ответов

Если вам все равно, какое значение будет в столбце auto_increment, тогда просто загрузите первый файл, переименуйте таблицу, затем заново создайте таблицу и загрузите второй файл. наконец, используйте

INSERT newly_created_table_name (all, columns, except, the, auto_increment, column)
       SELECT all, columns, except, the, auto_increment, column
         FROM renamed_table_name
25
ответ дан 27 November 2019 в 04:35
поделиться

Вы можете создать представление таблицы без столбца первичного ключа, а затем запустить mysqldump для этого представления.

Итак, если ваша таблица «users» имеет столбцы: id, name, email

> CREATE VIEW myView AS
  SELECT name, email FROM users

Edit: ах, понятно, я не уверен, есть ли другой выход.

11
ответ дан 27 November 2019 в 04:35
поделиться
SELECT null as fake_pk, `col_2`, `col_3`, `col_4` INTO OUTFILE 'your_file'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM your_table;

LOAD DATA INFILE 'your_file' INTO TABLE your_table
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n';

Для дополнительной изящности, вы можете установить триггер перед вставкой в принимающей таблице, который устанавливает новый первичный ключ для строки охвата до того, как произойдет вставка, тем самым используя обычные дампы и все еще очищая ваш pk. Не проверял, но чувствую себя довольно уверенно.

4
ответ дан 27 November 2019 в 04:35
поделиться

Джими был на правильном пути.

Это одна из причин, почему клавиши автоинкремента являются питкой. Одним из растворов - не удалить данные, но добавить к нему.

CREATE VIEW myView AS
SELECT id*10+$x, name, email FROM users

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

В качестве альтернативы, не создавайте таблицу в тестовой системе - вместо этого поместите в отдельные таблицы для данных SRC, затем создайте представление, которое вытесняет из них как:

CREATE VIEW users AS
(SELECT * FROM users_on_a) UNION (SELECT * FROM users_on_b)

c.

0
ответ дан 27 November 2019 в 04:35
поделиться

Используйте фиктивную временную первичную клавишу:

Использование Mysqldump - OPTS -C . Например, ваш основной ключ «ID». Отредактируйте выходные файлы и добавьте строку «Dummy_id» в структуру вашей таблицы с тем же типом, что и «ID» (но не первичный ключ, конечно). Затем измените вставку instate и замените «идентификатор» на «DUMY_ID». После импортированного, опустите столбец «Dummy_id».

2
ответ дан 27 November 2019 в 04:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: