Помогло бы, отправили ли Вы, какую базу данных SQL Вы используете. Для MySQL Вы, вероятно, хотите auto_increment:
ALTER TABLE tableName ADD id MEDIUMINT NOT NULL AUTO_INCREMENT KEY
Не уверенный, если это применяет значения задним числом все же. Если это не делает необходимо просто быть в состоянии выполнить итерации по значениям с хранимой процедурой или в простой программе (как долго, поскольку никто больше не пишет в базу данных), и набор используют эти LAST_INSERT_ID()
функция для генерации значения идентификатора.
Зарезервированное слово “extends” как наряду с параметром типа T используется для определения связанного.
вЂвЂ ¦ в этом контексте, расширяется, используется в общем смысле означать, что любой "расширяется" (как в классах) или "реализации" (как в интерфейсах).’ [, https://docs.oracle.com/javase/tutorial/java/generics/bounded.html ]
Короче говоря, “extends” может только использоваться для определения связанного (ли класс или интерфейс) для некоторого параметра типа класса T и не любого интерфейсного параметра типа T. В Вашем случае,
общедоступный класс MyClass< X расширяет SomeInterface, Y расширяет SomeOtherClass & X>
компилятор решает X, чтобы быть классом. Для второго возникновения X наряду с параметром типа Y (который ясно должен быть классом так или иначе), он требует X быть интерфейсом. Так как это уже решило X, чтобы быть классом, это сигнализирует об ошибке для второго возникновения X,
, тип X не является интерфейсом;
Далее, имел X указанный в первом вхождении как неограниченный параметр, компилятор разрешит его, чтобы быть или классом или интерфейсом и им, would’ve полагал, что второе возникновение X было возможным интерфейсом и таким образом позволил компиляцию. Так как это не было так, компилятор разъясняется,
это не может быть указано как ограниченный параметр