Когда я отправляю поле формы в базу данных mySQL, есть ли способ настроить базу данных на автоматическое удаление любых данных, превышающих длину поля данных?
Я знаю, что могу сделать это программно, но могубаза данных должна быть настроена на сброс избыточного значения без выдачи ошибки?
РЕДАКТИРОВАТЬ для ясности
вот мой оператор вставки
<cfquery datasource='#arguments.dsn#' name="addPatient">
INSERT INTO patients(patientFirstname
,patientLastname
,nhsNumber
,patientDOB
,patientTitle
,address1
,address2
,address3
,address4
,postcode
,patientPhone1
)
VALUES (<cfqueryparam value="#arguments.patientFirstname#" cfsqltype="CF_SQL_LONGVARCHAR"/>
,<cfqueryparam value="#arguments.patientLastname#" cfsqltype="CF_SQL_LONGVARCHAR"/>
,<cfqueryparam value="#arguments.nhsNumber#" cfsqltype="CF_SQL_LONGVARCHAR"/>
,<cfqueryparam value="#arguments.patientDOB#" cfsqltype="CF_SQL_TIMESTAMP"/>
,<cfqueryparam value="#arguments.patientTitle#" cfsqltype="CF_SQL_LONGVARCHAR"/>
,<cfqueryparam value="#arguments.address1#" cfsqltype="CF_SQL_VARCHAR"/>
,<cfqueryparam value="#arguments.address2#" cfsqltype="CF_SQL_LONGVARCHAR"/>
,<cfqueryparam value="#arguments.address3#" cfsqltype="CF_SQL_LONGVARCHAR"/>
,<cfqueryparam value="#arguments.address4#" cfsqltype="CF_SQL_LONGVARCHAR"/>
,<cfqueryparam value="#arguments.postcode#" cfsqltype="CF_SQL_LONGVARCHAR"/>
,<cfqueryparam value="#arguments.patientPhone1#" cfsqltype="CF_SQL_VARCHAR"/>
)
</cfquery>
поле таблицы PatientPhone равно VARCHAR (20)
Если я не проверяю отправку программно и просто набираю значение формы длиной 30 символов, я выкидываю ошибку (когда я думал, что это просто сохранит первые 20 символов)
Data truncation: Data too long for column 'patientPhone1' at row 8
Когда я настраивал БД с помощью мастера, я помню, что выбрал innodb и транзакционную и традиционную эмуляцию (что было рекомендовано, если я правильно помню)