2012-12-26 2 views
1

Есть ли способ установить первичный ключ auto increment, тип varchar в mySql?Auto Increment varchar в MySQL

+2

Что вы подразумеваете под автоинкрементным varchar? –

+0

Поле автоматического приращения должно быть 'INT' – Cdeez

+0

Возможный дубликат http://stackoverflow.com/questions/3455557/mysql-how-to-use-varchar-as-auto-increment-primary-key – Cdeez

ответ

3

NONE. До сих пор AUTO_INCREMENT можно было установить только для INT. Для этого нужна ваша собственная логика. например,

  • Получить Last ID
  • Получить часть INT в строке
  • Increment значение
  • Concatenate
  • Сохранить в БД
0

Дублирование MySQL - how to use VARCHAR as AUTO INCREMENT Primary Key

По моему мнению, у вас есть t o изменить его как целочисленный. С AUTO_INCREMENT предназначен для INT типа только, кроме того, устанавливая поле как PRIMARY KEY, которое предотвращает дублирование значений.

0

Поля AutoIncrement являются целыми числами в mysql.

Вы можете зеркалировать поле auto-increment в поле varchar и создавать триггер, который обновляет поле varchar при вставке/обновлении.

Create Trigger

0

для моего опыта, вы можете сделать Varcar ID, как автоматическое приращение, но вы должны иметь logic..let сказать

Dim crnum As String = "CR00001" 
    Dim iTemp As Integer = 0 

       iTemp = CInt(crnum.Substring(4, crnum.Length - 4)) '// get only the #'s from String and Convert them to Integer. 
       iTemp += 1 '// increase the ID # + 1. 
       crnum = crnum.Substring(0, 4) & iTemp.ToString("00000") '// set the ID back with String and #'s formatted to 5 digit #. 

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