MI_TEST_ID | MI_TESTNAME | MI_DATE_CREATED | MI_FLAG |
我尝试在插入之前创建触发器,但是它不起作用。可以在插入之前使用触发器进行自动递增吗?
MySQL中有一个内置的自动增量功能,但是我希望我的测试ID具有MI001之类的前缀。
BEGIN
INSERT INTO `mi_test` VALUES (NULL);
SET NEW.mi_test_id = CONCAT('MI', LPAD(LAST_INSERT_ID(), 3, '0'))
END
这是我直接在phpmyadmin触发器函数中使用的触发器。每当我尝试插入时。总是说列数与第1行的值数不匹配
我在其他线程中找到了解决方案,发现其中一个需要另一个表进行排序,但是我需要在一个查询中使用它。
答案 0 :(得分:0)
您可以找到要分配给新记录的当前auto_increment值。 并在before触发器中将其用作user_records表的父用户ID。 您必须查询information_schema.tables表以找到该值。
示例:
let selectedImage: UIImage?
let parameters: Parameters = ["user_id": "1","description": "test"];
Alamofire.upload(multipartFormData: { MultipartFormData in
for (key, value) in parameters {
MultipartFormData.append((value as AnyObject).data(using: String.Encoding.utf8.rawValue)!, withName: key)
}
let imgData = UIImageJPEGRepresentation(selectedImage!,1)
MultipartFormData.append(imgData!, withName: "fileset", fileName: "file.jpeg", mimeType: "image/jpeg")
}, to: "mysite/upload.php") { (result) in
switch result {
case .success(let upload, _, _):
upload.uploadProgress(closure: { (Progress) in
print("Upload Progress: \(Progress.fractionCompleted)")
})
upload.responseJSON { response in
print(response.result.value!)
}
case .failure(let encodingError):
print(encodingError.localizedDescription)
break
}
}