2015-09-08 3 views
0

Я создаю базу данных и задаю поле A, Release # в качестве основного поля. Я столкнулся с проблемой, когда найдены дубликаты ключей, которые дают ошибку при импорте.
В частности, релиз # "49221" - это значение определенного выпуска с определенного веб-сайта. На другом веб-сайте релиз № «0000000049221»Основные проблемы при импорте

Релиз № 49221 - совершенно другой выпуск, чем «0000000049221». Есть ли способ импортировать оба из них в одну и ту же таблицу, сохраняя при этом поле «release #» в качестве первичного ключа?

+0

Каков тип данных в поле? Если это int, db будет игнорировать начальные нули, делая эти два значения одинаковыми. – rwking

+0

Тип данных поля bigint (13), я думаю, что именно это и произошло. Изучение с нуля здесь, и это здорово узнать, спасибо – gingerbread

ответ

0

Это обычно происходит, когда заданы неявные преобразования, проверьте тип первичного ключа.

Например:

CREATE TABLE TEST 
(
    COLUMN_1 INT, 
    COLUMN_2 VARCHAR(8) 
) 

INSERT INTO TEST 
VALUES (4566,'00004566') 

SELECT * FROM TEST WHERE COLUMN_1 = COLUMN_2 

Второй столбец, он преобразует в целое, а нули в левой пропадают, потому что нули слева в ряду не имеет значения (как вы знаете).

Измените тип второго столбца на тип varchar или char.

0

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

Смежные вопросы