У меня есть AutoIncremented столбец (ID), и я хочу иметь ограничение, которое только база данных когда-либо заполняет этот столбец. Есть ли ограничение для этого?Могу я ограничить столбец AutoIncremented, чтобы не принимать значения извне?
2
A
ответ
1
Я не думаю, что есть декларативное ограничение, которое может это сделать.
Вы можете сделать это с помощью триггера, например:
DELIMITER //
CREATE TRIGGER ForceId BEFORE INSERT ON MyTable
FOR EACH ROW
BEGIN
SET NEW.id = DEFAULT;
END //
DELIMITER ;
Я просто проверил это на MySQL 5.1.41 и это похоже на работу. Если я укажу значение для id
в своем заявлении INSERT
, оно игнорирует мое значение и генерирует новое значение суррогатного ключа.
INSERT INTO MyTable (id, name) VALUES (DEFAULT, 'Bill');
INSERT INTO MyTable (id, name) VALUES (123, 'John');
SELECT * FROM MyTable;
+----+-------+
| id | name |
+----+-------+
| 1 | bill |
| 2 | john |
+----+-------+
Смежные вопросы
- 1. Создать столбец Sqlserver.Management.Smo, который autoincremented
- 2. Я не могу ограничить мою программу принимать только двоичные числа
- 3. Ограничить JTextField, чтобы принимать только набор символов
- 4. Java - ограничить сканер, чтобы принимать только удвоения
- 5. Я хочу, чтобы ограничить " '[] \ принимать ввод в HTML текстовой
- 6. Как настроить столбец sqlite, чтобы он мог принимать любые значения
- 7. Как я могу заставить регулярное выражение не принимать некоторые значения?
- 8. Я не могу подключиться к сокету извне
- 9. Как я могу ограничить django ImageFieldFile, чтобы принимать только входные файлы изображений из браузера?
- 10. Как я могу ограничить UITextField на UIAlertController, чтобы принимать только число с указанием диапазона?
- 11. Ограничить поле ввода, чтобы принимать только номера с диапазоном
- 12. В C Как я могу ограничить принятые значения, которые этот сканер будет принимать?
- 13. Как я могу изменить свою программу, чтобы принимать разные входы?
- 14. Как я могу ограничить столбец Bootstrap до высоты определенного столбца?
- 15. Ограничить Textarea не принимать 250 символов
- 16. Мне нужно ограничить мою программу, чтобы не принимать никакие десятичные значения в моей программе
- 17. Ограничить uibDatepicker всплывать, чтобы принимать только цифры и '-'
- 18. Последний Сформировано autoincremented Id
- 19. Как я могу ограничить несколько столбцов, чтобы предотвратить дубликаты, но игнорировать нулевые значения?
- 20. Как я могу заставить TextBox принимать только числовые значения
- 21. Как я могу проверить ввод, чтобы принимать только двоичные числа?
- 22. Могу ли я добавить не нулевой столбец без значения DEFAULT
- 23. , чтобы принимать значения флажка в атрибутах таблицы
- 24. Чтобы ограничить или не ограничивать?
- 25. Как я могу заставить NSMutableArray принимать уникальные значения?
- 26. Как я могу принимать значения из этого массива
- 27. Как ограничить общую функцию, чтобы принимать только некоторый тип классов
- 28. Ограничить EditText, чтобы принимать только Urls в Android
- 29. Не могу увидеть сайт извне
- 30. Как ограничить JTextFiled, чтобы принимать только числа меньше 10?
Не могли бы вы описать «Снаружи» –
Я бы хотел, чтобы любой INSERT в этот стол с плохими данными потерпел неудачу. – ripper234
Я всегда думал, что когда вы определяете столбец как автоматическое приращение, и попытка установить столбец со вставкой не удастся, поэтому массовые сценарии импорта отключаются, прежде чем устанавливать все эти данные. Я мог ошибаться. Я полагаю, вы пытались это сделать, и это сработало? Какой вкус sql? – Charles