Documentation ¶
Overview ¶
MySQL Client API written entirely in Go without any external dependences.
Index ¶
- Constants
- Variables
- func DurationString(d time.Duration) string
- func End(r Result) error
- func Exec(s Stmt, params ...interface{}) (rows []Row, res Result, err error)
- func ExecFirst(s Stmt, params ...interface{}) (row Row, res Result, err error)
- func ExecLast(s Stmt, params ...interface{}) (row Row, res Result, err error)
- func ParseDuration(str string) (dur time.Duration, err error)
- func ParseTime(str string, loc *time.Location) (t time.Time, err error)
- func Query(c Conn, sql string, params ...interface{}) (rows []Row, res Result, err error)
- func QueryFirst(c Conn, sql string, params ...interface{}) (row Row, res Result, err error)
- func QueryLast(c Conn, sql string, params ...interface{}) (row Row, res Result, err error)
- func TimeString(t time.Time) string
- func Version() string
- type Blob
- type ClientError
- type Conn
- type ConnCommon
- type Date
- type Dialer
- type Error
- type Field
- type Raw
- type Result
- type Row
- func (tr Row) Bin(nn int) (bin []byte)
- func (tr Row) Bool(nn int) (val bool)
- func (tr Row) BoolErr(nn int) (val bool, err error)
- func (tr Row) Date(nn int) (val Date)
- func (tr Row) DateErr(nn int) (val Date, err error)
- func (tr Row) Duration(nn int) (val time.Duration)
- func (tr Row) DurationErr(nn int) (val time.Duration, err error)
- func (tr Row) Float(nn int) (val float64)
- func (tr Row) FloatErr(nn int) (val float64, err error)
- func (tr Row) ForceBool(nn int) (val bool)
- func (tr Row) ForceDate(nn int) (val Date)
- func (tr Row) ForceDuration(nn int) (val time.Duration)
- func (tr Row) ForceFloat(nn int) (val float64)
- func (tr Row) ForceInt(nn int) (val int)
- func (tr Row) ForceInt64(nn int) (val int64)
- func (tr Row) ForceLocaltime(nn int) (val time.Time)
- func (tr Row) ForceTime(nn int, loc *time.Location) (val time.Time)
- func (tr Row) ForceUint(nn int) (val uint)
- func (tr Row) ForceUint64(nn int) (val uint64)
- func (tr Row) Int(nn int) (val int)
- func (tr Row) Int64(nn int) (val int64)
- func (tr Row) Int64Err(nn int) (val int64, err error)
- func (tr Row) IntErr(nn int) (val int, err error)
- func (tr Row) Localtime(nn int) (val time.Time)
- func (tr Row) LocaltimeErr(nn int) (t time.Time, err error)
- func (tr Row) Str(nn int) (str string)
- func (tr Row) Time(nn int, loc *time.Location) (val time.Time)
- func (tr Row) TimeErr(nn int, loc *time.Location) (t time.Time, err error)
- func (tr Row) Uint(nn int) (val uint)
- func (tr Row) Uint64(nn int) (val uint64)
- func (tr Row) Uint64Err(nn int) (val uint64, err error)
- func (tr Row) UintErr(nn int) (val uint, err error)
- type Stmt
- type Timestamp
- type Transaction
Constants ¶
const ( ER_HASHCHK = 1000 ER_NISAMCHK = 1001 ER_NO = 1002 ER_YES = 1003 ER_CANT_CREATE_FILE = 1004 ER_CANT_CREATE_TABLE = 1005 ER_CANT_CREATE_DB = 1006 ER_DB_CREATE_EXISTS = 1007 ER_DB_DROP_EXISTS = 1008 ER_DB_DROP_DELETE = 1009 ER_DB_DROP_RMDIR = 1010 ER_CANT_DELETE_FILE = 1011 ER_CANT_FIND_SYSTEM_REC = 1012 ER_CANT_GET_STAT = 1013 ER_CANT_GET_WD = 1014 ER_CANT_LOCK = 1015 ER_CANT_OPEN_FILE = 1016 ER_FILE_NOT_FOUND = 1017 ER_CANT_READ_DIR = 1018 ER_CANT_SET_WD = 1019 ER_CHECKREAD = 1020 ER_DISK_FULL = 1021 ER_DUP_KEY = 1022 ER_ERROR_ON_CLOSE = 1023 ER_ERROR_ON_READ = 1024 ER_ERROR_ON_RENAME = 1025 ER_ERROR_ON_WRITE = 1026 ER_FILE_USED = 1027 ER_FILSORT_ABORT = 1028 ER_FORM_NOT_FOUND = 1029 ER_GET_ERRNO = 1030 ER_ILLEGAL_HA = 1031 ER_KEY_NOT_FOUND = 1032 ER_NOT_FORM_FILE = 1033 ER_NOT_KEYFILE = 1034 ER_OLD_KEYFILE = 1035 ER_OPEN_AS_READONLY = 1036 ER_OUTOFMEMORY = 1037 ER_OUT_OF_SORTMEMORY = 1038 ER_UNEXPECTED_EOF = 1039 ER_CON_COUNT_ERROR = 1040 ER_OUT_OF_RESOURCES = 1041 ER_BAD_HOST_ERROR = 1042 ER_HANDSHAKE_ERROR = 1043 ER_DBACCESS_DENIED_ERROR = 1044 ER_ACCESS_DENIED_ERROR = 1045 ER_NO_DB_ERROR = 1046 ER_UNKNOWN_COM_ERROR = 1047 ER_BAD_NULL_ERROR = 1048 ER_BAD_DB_ERROR = 1049 ER_TABLE_EXISTS_ERROR = 1050 ER_BAD_TABLE_ERROR = 1051 ER_NON_UNIQ_ERROR = 1052 ER_SERVER_SHUTDOWN = 1053 ER_BAD_FIELD_ERROR = 1054 ER_WRONG_FIELD_WITH_GROUP = 1055 ER_WRONG_GROUP_FIELD = 1056 ER_WRONG_SUM_SELECT = 1057 ER_WRONG_VALUE_COUNT = 1058 ER_TOO_LONG_IDENT = 1059 ER_DUP_FIELDNAME = 1060 ER_DUP_KEYNAME = 1061 ER_DUP_ENTRY = 1062 ER_WRONG_FIELD_SPEC = 1063 ER_PARSE_ERROR = 1064 ER_EMPTY_QUERY = 1065 ER_NONUNIQ_TABLE = 1066 ER_INVALID_DEFAULT = 1067 ER_MULTIPLE_PRI_KEY = 1068 ER_TOO_MANY_KEYS = 1069 ER_TOO_MANY_KEY_PARTS = 1070 ER_TOO_LONG_KEY = 1071 ER_KEY_COLUMN_DOES_NOT_EXITS = 1072 ER_BLOB_USED_AS_KEY = 1073 ER_TOO_BIG_FIELDLENGTH = 1074 ER_WRONG_AUTO_KEY = 1075 ER_READY = 1076 ER_NORMAL_SHUTDOWN = 1077 ER_GOT_SIGNAL = 1078 ER_SHUTDOWN_COMPLETE = 1079 ER_FORCING_CLOSE = 1080 ER_IPSOCK_ERROR = 1081 ER_NO_SUCH_INDEX = 1082 ER_WRONG_FIELD_TERMINATORS = 1083 ER_BLOBS_AND_NO_TERMINATED = 1084 ER_TEXTFILE_NOT_READABLE = 1085 ER_FILE_EXISTS_ERROR = 1086 ER_LOAD_INFO = 1087 ER_ALTER_INFO = 1088 ER_WRONG_SUB_KEY = 1089 ER_CANT_REMOVE_ALL_FIELDS = 1090 ER_CANT_DROP_FIELD_OR_KEY = 1091 ER_INSERT_INFO = 1092 ER_UPDATE_TABLE_USED = 1093 ER_NO_SUCH_THREAD = 1094 ER_KILL_DENIED_ERROR = 1095 ER_NO_TABLES_USED = 1096 ER_TOO_BIG_SET = 1097 ER_NO_UNIQUE_LOGFILE = 1098 ER_TABLE_NOT_LOCKED_FOR_WRITE = 1099 ER_TABLE_NOT_LOCKED = 1100 ER_BLOB_CANT_HAVE_DEFAULT = 1101 ER_WRONG_DB_NAME = 1102 ER_WRONG_TABLE_NAME = 1103 ER_TOO_BIG_SELECT = 1104 ER_UNKNOWN_ERROR = 1105 ER_UNKNOWN_PROCEDURE = 1106 ER_WRONG_PARAMCOUNT_TO_PROCEDURE = 1107 ER_WRONG_PARAMETERS_TO_PROCEDURE = 1108 ER_UNKNOWN_TABLE = 1109 ER_FIELD_SPECIFIED_TWICE = 1110 ER_INVALID_GROUP_FUNC_USE = 1111 ER_UNSUPPORTED_EXTENSION = 1112 ER_TABLE_MUST_HAVE_COLUMNS = 1113 ER_RECORD_FILE_FULL = 1114 ER_UNKNOWN_CHARACTER_SET = 1115 ER_TOO_MANY_TABLES = 1116 ER_TOO_MANY_FIELDS = 1117 ER_TOO_BIG_ROWSIZE = 1118 ER_STACK_OVERRUN = 1119 ER_WRONG_OUTER_JOIN = 1120 ER_NULL_COLUMN_IN_INDEX = 1121 ER_CANT_FIND_UDF = 1122 ER_CANT_INITIALIZE_UDF = 1123 ER_UDF_NO_PATHS = 1124 ER_UDF_EXISTS = 1125 ER_CANT_OPEN_LIBRARY = 1126 ER_CANT_FIND_DL_ENTRY = 1127 ER_FUNCTION_NOT_DEFINED = 1128 ER_HOST_IS_BLOCKED = 1129 ER_HOST_NOT_PRIVILEGED = 1130 ER_PASSWORD_ANONYMOUS_USER = 1131 ER_PASSWORD_NOT_ALLOWED = 1132 ER_PASSWORD_NO_MATCH = 1133 ER_UPDATE_INFO = 1134 ER_CANT_CREATE_THREAD = 1135 ER_WRONG_VALUE_COUNT_ON_ROW = 1136 ER_CANT_REOPEN_TABLE = 1137 ER_INVALID_USE_OF_NULL = 1138 ER_REGEXP_ERROR = 1139 ER_MIX_OF_GROUP_FUNC_AND_FIELDS = 1140 ER_NONEXISTING_GRANT = 1141 ER_TABLEACCESS_DENIED_ERROR = 1142 ER_COLUMNACCESS_DENIED_ERROR = 1143 ER_ILLEGAL_GRANT_FOR_TABLE = 1144 ER_GRANT_WRONG_HOST_OR_USER = 1145 ER_NO_SUCH_TABLE = 1146 ER_NONEXISTING_TABLE_GRANT = 1147 ER_NOT_ALLOWED_COMMAND = 1148 ER_SYNTAX_ERROR = 1149 ER_DELAYED_CANT_CHANGE_LOCK = 1150 ER_TOO_MANY_DELAYED_THREADS = 1151 ER_ABORTING_CONNECTION = 1152 ER_NET_PACKET_TOO_LARGE = 1153 ER_NET_READ_ERROR_FROM_PIPE = 1154 ER_NET_FCNTL_ERROR = 1155 ER_NET_PACKETS_OUT_OF_ORDER = 1156 ER_NET_UNCOMPRESS_ERROR = 1157 ER_NET_READ_ERROR = 1158 ER_NET_READ_INTERRUPTED = 1159 ER_NET_ERROR_ON_WRITE = 1160 ER_NET_WRITE_INTERRUPTED = 1161 ER_TOO_LONG_STRING = 1162 ER_TABLE_CANT_HANDLE_BLOB = 1163 ER_TABLE_CANT_HANDLE_AUTO_INCREMENT = 1164 ER_DELAYED_INSERT_TABLE_LOCKED = 1165 ER_WRONG_COLUMN_NAME = 1166 ER_WRONG_KEY_COLUMN = 1167 ER_WRONG_MRG_TABLE = 1168 ER_DUP_UNIQUE = 1169 ER_BLOB_KEY_WITHOUT_LENGTH = 1170 ER_PRIMARY_CANT_HAVE_NULL = 1171 ER_TOO_MANY_ROWS = 1172 ER_REQUIRES_PRIMARY_KEY = 1173 ER_NO_RAID_COMPILED = 1174 ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE = 1175 ER_KEY_DOES_NOT_EXITS = 1176 ER_CHECK_NO_SUCH_TABLE = 1177 ER_CHECK_NOT_IMPLEMENTED = 1178 ER_CANT_DO_THIS_DURING_AN_TRANSACTION = 1179 ER_ERROR_DURING_COMMIT = 1180 ER_ERROR_DURING_ROLLBACK = 1181 ER_ERROR_DURING_FLUSH_LOGS = 1182 ER_ERROR_DURING_CHECKPOINT = 1183 ER_NEW_ABORTING_CONNECTION = 1184 ER_DUMP_NOT_IMPLEMENTED = 1185 ER_FLUSH_MASTER_BINLOG_CLOSED = 1186 ER_INDEX_REBUILD = 1187 ER_MASTER = 1188 ER_MASTER_NET_READ = 1189 ER_MASTER_NET_WRITE = 1190 ER_FT_MATCHING_KEY_NOT_FOUND = 1191 ER_LOCK_OR_ACTIVE_TRANSACTION = 1192 ER_UNKNOWN_SYSTEM_VARIABLE = 1193 ER_CRASHED_ON_USAGE = 1194 ER_CRASHED_ON_REPAIR = 1195 ER_WARNING_NOT_COMPLETE_ROLLBACK = 1196 ER_TRANS_CACHE_FULL = 1197 ER_SLAVE_MUST_STOP = 1198 ER_SLAVE_NOT_RUNNING = 1199 ER_BAD_SLAVE = 1200 ER_MASTER_INFO = 1201 ER_SLAVE_THREAD = 1202 ER_TOO_MANY_USER_CONNECTIONS = 1203 ER_SET_CONSTANTS_ONLY = 1204 ER_LOCK_WAIT_TIMEOUT = 1205 ER_LOCK_TABLE_FULL = 1206 ER_READ_ONLY_TRANSACTION = 1207 ER_DROP_DB_WITH_READ_LOCK = 1208 ER_CREATE_DB_WITH_READ_LOCK = 1209 ER_WRONG_ARGUMENTS = 1210 ER_NO_PERMISSION_TO_CREATE_USER = 1211 ER_UNION_TABLES_IN_DIFFERENT_DIR = 1212 ER_LOCK_DEADLOCK = 1213 ER_TABLE_CANT_HANDLE_FT = 1214 ER_CANNOT_ADD_FOREIGN = 1215 ER_NO_REFERENCED_ROW = 1216 ER_ROW_IS_REFERENCED = 1217 ER_CONNECT_TO_MASTER = 1218 ER_QUERY_ON_MASTER = 1219 ER_ERROR_WHEN_EXECUTING_COMMAND = 1220 ER_WRONG_USAGE = 1221 ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT = 1222 ER_CANT_UPDATE_WITH_READLOCK = 1223 ER_MIXING_NOT_ALLOWED = 1224 ER_DUP_ARGUMENT = 1225 ER_USER_LIMIT_REACHED = 1226 ER_SPECIFIC_ACCESS_DENIED_ERROR = 1227 ER_LOCAL_VARIABLE = 1228 ER_GLOBAL_VARIABLE = 1229 ER_NO_DEFAULT = 1230 ER_WRONG_VALUE_FOR_VAR = 1231 ER_WRONG_TYPE_FOR_VAR = 1232 ER_VAR_CANT_BE_READ = 1233 ER_CANT_USE_OPTION_HERE = 1234 ER_NOT_SUPPORTED_YET = 1235 ER_MASTER_FATAL_ERROR_READING_BINLOG = 1236 ER_SLAVE_IGNORED_TABLE = 1237 ER_INCORRECT_GLOBAL_LOCAL_VAR = 1238 ER_WRONG_FK_DEF = 1239 ER_KEY_REF_DO_NOT_MATCH_TABLE_REF = 1240 ER_OPERAND_COLUMNS = 1241 ER_SUBQUERY_NO_1_ROW = 1242 ER_UNKNOWN_STMT_HANDLER = 1243 ER_CORRUPT_HELP_DB = 1244 ER_CYCLIC_REFERENCE = 1245 ER_AUTO_CONVERT = 1246 ER_ILLEGAL_REFERENCE = 1247 ER_DERIVED_MUST_HAVE_ALIAS = 1248 ER_SELECT_REDUCED = 1249 ER_TABLENAME_NOT_ALLOWED_HERE = 1250 ER_NOT_SUPPORTED_AUTH_MODE = 1251 ER_SPATIAL_CANT_HAVE_NULL = 1252 ER_COLLATION_CHARSET_MISMATCH = 1253 ER_SLAVE_WAS_RUNNING = 1254 ER_SLAVE_WAS_NOT_RUNNING = 1255 ER_TOO_BIG_FOR_UNCOMPRESS = 1256 ER_ZLIB_Z_MEM_ERROR = 1257 ER_ZLIB_Z_BUF_ERROR = 1258 ER_ZLIB_Z_DATA_ERROR = 1259 ER_CUT_VALUE_GROUP_CONCAT = 1260 ER_WARN_TOO_FEW_RECORDS = 1261 ER_WARN_TOO_MANY_RECORDS = 1262 ER_WARN_NULL_TO_NOTNULL = 1263 ER_WARN_DATA_OUT_OF_RANGE = 1264 WARN_DATA_TRUNCATED = 1265 ER_WARN_USING_OTHER_HANDLER = 1266 ER_CANT_AGGREGATE_2COLLATIONS = 1267 ER_DROP_USER = 1268 ER_REVOKE_GRANTS = 1269 ER_CANT_AGGREGATE_3COLLATIONS = 1270 ER_CANT_AGGREGATE_NCOLLATIONS = 1271 ER_VARIABLE_IS_NOT_STRUCT = 1272 ER_UNKNOWN_COLLATION = 1273 ER_SLAVE_IGNORED_SSL_PARAMS = 1274 ER_SERVER_IS_IN_SECURE_AUTH_MODE = 1275 ER_WARN_FIELD_RESOLVED = 1276 ER_BAD_SLAVE_UNTIL_COND = 1277 ER_MISSING_SKIP_SLAVE = 1278 ER_UNTIL_COND_IGNORED = 1279 ER_WRONG_NAME_FOR_INDEX = 1280 ER_WRONG_NAME_FOR_CATALOG = 1281 ER_WARN_QC_RESIZE = 1282 ER_BAD_FT_COLUMN = 1283 ER_UNKNOWN_KEY_CACHE = 1284 ER_WARN_HOSTNAME_WONT_WORK = 1285 ER_UNKNOWN_STORAGE_ENGINE = 1286 ER_WARN_DEPRECATED_SYNTAX = 1287 ER_NON_UPDATABLE_TABLE = 1288 ER_FEATURE_DISABLED = 1289 ER_OPTION_PREVENTS_STATEMENT = 1290 ER_DUPLICATED_VALUE_IN_TYPE = 1291 ER_TRUNCATED_WRONG_VALUE = 1292 ER_TOO_MUCH_AUTO_TIMESTAMP_COLS = 1293 ER_INVALID_ON_UPDATE = 1294 ER_UNSUPPORTED_PS = 1295 ER_GET_ERRMSG = 1296 ER_GET_TEMPORARY_ERRMSG = 1297 ER_UNKNOWN_TIME_ZONE = 1298 ER_WARN_INVALID_TIMESTAMP = 1299 ER_INVALID_CHARACTER_STRING = 1300 ER_WARN_ALLOWED_PACKET_OVERFLOWED = 1301 ER_CONFLICTING_DECLARATIONS = 1302 ER_SP_NO_RECURSIVE_CREATE = 1303 ER_SP_ALREADY_EXISTS = 1304 ER_SP_DOES_NOT_EXIST = 1305 ER_SP_DROP_FAILED = 1306 ER_SP_STORE_FAILED = 1307 ER_SP_LILABEL_MISMATCH = 1308 ER_SP_LABEL_REDEFINE = 1309 ER_SP_LABEL_MISMATCH = 1310 ER_SP_UNINIT_VAR = 1311 ER_SP_BADSELECT = 1312 ER_SP_BADRETURN = 1313 ER_SP_BADSTATEMENT = 1314 ER_UPDATE_LOG_DEPRECATED_IGNORED = 1315 ER_UPDATE_LOG_DEPRECATED_TRANSLATED = 1316 ER_QUERY_INTERRUPTED = 1317 ER_SP_WRONG_NO_OF_ARGS = 1318 ER_SP_COND_MISMATCH = 1319 ER_SP_NORETURN = 1320 ER_SP_NORETURNEND = 1321 ER_SP_BAD_CURSOR_QUERY = 1322 ER_SP_BAD_CURSOR_SELECT = 1323 ER_SP_CURSOR_MISMATCH = 1324 ER_SP_CURSOR_ALREADY_OPEN = 1325 ER_SP_CURSOR_NOT_OPEN = 1326 ER_SP_UNDECLARED_VAR = 1327 ER_SP_WRONG_NO_OF_FETCH_ARGS = 1328 ER_SP_FETCH_NO_DATA = 1329 ER_SP_DUP_PARAM = 1330 ER_SP_DUP_VAR = 1331 ER_SP_DUP_COND = 1332 ER_SP_DUP_CURS = 1333 ER_SP_CANT_ALTER = 1334 ER_SP_SUBSELECT_NYI = 1335 ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG = 1336 ER_SP_VARCOND_AFTER_CURSHNDLR = 1337 ER_SP_CURSOR_AFTER_HANDLER = 1338 ER_SP_CASE_NOT_FOUND = 1339 ER_FPARSER_TOO_BIG_FILE = 1340 ER_FPARSER_BAD_HEADER = 1341 ER_FPARSER_EOF_IN_COMMENT = 1342 ER_FPARSER_ERROR_IN_PARAMETER = 1343 ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER = 1344 ER_VIEW_NO_EXPLAIN = 1345 ER_FRM_UNKNOWN_TYPE = 1346 ER_WRONG_OBJECT = 1347 ER_NONUPDATEABLE_COLUMN = 1348 ER_VIEW_SELECT_DERIVED = 1349 ER_VIEW_SELECT_CLAUSE = 1350 ER_VIEW_SELECT_VARIABLE = 1351 ER_VIEW_SELECT_TMPTABLE = 1352 ER_VIEW_WRONG_LIST = 1353 ER_WARN_VIEW_MERGE = 1354 ER_WARN_VIEW_WITHOUT_KEY = 1355 ER_VIEW_INVALID = 1356 ER_SP_NO_DROP_SP = 1357 ER_SP_GOTO_IN_HNDLR = 1358 ER_TRG_ALREADY_EXISTS = 1359 ER_TRG_DOES_NOT_EXIST = 1360 ER_TRG_ON_VIEW_OR_TEMP_TABLE = 1361 ER_TRG_CANT_CHANGE_ROW = 1362 ER_TRG_NO_SUCH_ROW_IN_TRG = 1363 ER_NO_DEFAULT_FOR_FIELD = 1364 ER_DIVISION_BY_ZERO = 1365 ER_TRUNCATED_WRONG_VALUE_FOR_FIELD = 1366 ER_ILLEGAL_VALUE_FOR_TYPE = 1367 ER_VIEW_NONUPD_CHECK = 1368 ER_VIEW_CHECK_FAILED = 1369 ER_PROCACCESS_DENIED_ERROR = 1370 ER_RELAY_LOG_FAIL = 1371 ER_PASSWD_LENGTH = 1372 ER_UNKNOWN_TARGET_BINLOG = 1373 ER_IO_ERR_LOG_INDEX_READ = 1374 ER_BINLOG_PURGE_PROHIBITED = 1375 ER_FSEEK_FAIL = 1376 ER_BINLOG_PURGE_FATAL_ERR = 1377 ER_LOG_IN_USE = 1378 ER_LOG_PURGE_UNKNOWN_ERR = 1379 ER_RELAY_LOG_INIT = 1380 ER_NO_BINARY_LOGGING = 1381 ER_RESERVED_SYNTAX = 1382 ER_WSAS_FAILED = 1383 ER_DIFF_GROUPS_PROC = 1384 ER_NO_GROUP_FOR_PROC = 1385 ER_ORDER_WITH_PROC = 1386 ER_LOGGING_PROHIBIT_CHANGING_OF = 1387 ER_NO_FILE_MAPPING = 1388 ER_WRONG_MAGIC = 1389 ER_PS_MANY_PARAM = 1390 ER_KEY_PART_0 = 1391 ER_VIEW_CHECKSUM = 1392 ER_VIEW_MULTIUPDATE = 1393 ER_VIEW_NO_INSERT_FIELD_LIST = 1394 ER_VIEW_DELETE_MERGE_VIEW = 1395 ER_CANNOT_USER = 1396 ER_XAER_NOTA = 1397 ER_XAER_INVAL = 1398 ER_XAER_RMFAIL = 1399 ER_XAER_OUTSIDE = 1400 ER_XAER_RMERR = 1401 ER_XA_RBROLLBACK = 1402 ER_NONEXISTING_PROC_GRANT = 1403 ER_PROC_AUTO_GRANT_FAIL = 1404 ER_PROC_AUTO_REVOKE_FAIL = 1405 ER_DATA_TOO_LONG = 1406 ER_SP_BAD_SQLSTATE = 1407 ER_STARTUP = 1408 ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR = 1409 ER_CANT_CREATE_USER_WITH_GRANT = 1410 ER_WRONG_VALUE_FOR_TYPE = 1411 ER_TABLE_DEF_CHANGED = 1412 ER_SP_DUP_HANDLER = 1413 ER_SP_NOT_VAR_ARG = 1414 ER_SP_NO_RETSET = 1415 ER_CANT_CREATE_GEOMETRY_OBJECT = 1416 ER_FAILED_ROUTINE_BREAK_BINLOG = 1417 ER_BINLOG_UNSAFE_ROUTINE = 1418 ER_BINLOG_CREATE_ROUTINE_NEED_SUPER = 1419 ER_EXEC_STMT_WITH_OPEN_CURSOR = 1420 ER_STMT_HAS_NO_OPEN_CURSOR = 1421 ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG = 1422 ER_NO_DEFAULT_FOR_VIEW_FIELD = 1423 ER_SP_NO_RECURSION = 1424 ER_TOO_BIG_SCALE = 1425 ER_TOO_BIG_PRECISION = 1426 ER_M_BIGGER_THAN_D = 1427 ER_WRONG_LOCK_OF_SYSTEM_TABLE = 1428 ER_CONNECT_TO_FOREIGN_DATA_SOURCE = 1429 ER_QUERY_ON_FOREIGN_DATA_SOURCE = 1430 ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST = 1431 ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE = 1432 ER_FOREIGN_DATA_STRING_INVALID = 1433 ER_CANT_CREATE_FEDERATED_TABLE = 1434 ER_TRG_IN_WRONG_SCHEMA = 1435 ER_STACK_OVERRUN_NEED_MORE = 1436 ER_TOO_LONG_BODY = 1437 ER_WARN_CANT_DROP_DEFAULT_KEYCACHE = 1438 ER_TOO_BIG_DISPLAYWIDTH = 1439 ER_XAER_DUPID = 1440 ER_DATETIME_FUNCTION_OVERFLOW = 1441 ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG = 1442 ER_VIEW_PREVENT_UPDATE = 1443 ER_PS_NO_RECURSION = 1444 ER_SP_CANT_SET_AUTOCOMMIT = 1445 ER_MALFORMED_DEFINER = 1446 ER_VIEW_FRM_NO_USER = 1447 ER_VIEW_OTHER_USER = 1448 ER_NO_SUCH_USER = 1449 ER_FORBID_SCHEMA_CHANGE = 1450 ER_ROW_IS_REFERENCED_2 = 1451 ER_NO_REFERENCED_ROW_2 = 1452 ER_SP_BAD_VAR_SHADOW = 1453 ER_TRG_NO_DEFINER = 1454 ER_OLD_FILE_FORMAT = 1455 ER_SP_RECURSION_LIMIT = 1456 ER_SP_PROC_TABLE_CORRUPT = 1457 ER_SP_WRONG_NAME = 1458 ER_TABLE_NEEDS_UPGRADE = 1459 ER_SP_NO_AGGREGATE = 1460 ER_MAX_PREPARED_STMT_COUNT_REACHED = 1461 ER_VIEW_RECURSIVE = 1462 ER_NON_GROUPING_FIELD_USED = 1463 ER_TABLE_CANT_HANDLE_SPKEYS = 1464 ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA = 1465 ER_REMOVED_SPACES = 1466 ER_AUTOINC_READ_FAILED = 1467 ER_USERNAME = 1468 ER_HOSTNAME = 1469 ER_WRONG_STRING_LENGTH = 1470 ER_NON_INSERTABLE_TABLE = 1471 )
MySQL error codes
const TimeFormat = "2006-01-02 15:04:05.000000000"
Sandard MySQL datetime format
Variables ¶
var ( ErrSeq = ClientError("packet sequence error") ErrPkt = ClientError("malformed packet") ErrPktLong = ClientError("packet too long") ErrUnexpNullLCS = ClientError("unexpected NULL LCS") ErrUnexpNullLCB = ClientError("unexpected NULL LCB") ErrUnexpNullDate = ClientError("unexpected NULL DATETIME") ErrUnexpNullTime = ClientError("unexpected NULL TIME") ErrUnkResultPkt = ClientError("unexpected or unknown result packet") ErrNotConn = ClientError("not connected") ErrAlredyConn = ClientError("not connected") ErrBadResult = ClientError("unexpected result") ErrUnreadedReply = ClientError("reply is not completely read") ErrBindCount = ClientError("wrong number of values for bind") ErrBindUnkType = ClientError("unknown value type for bind") ErrRowLength = ClientError("wrong length of row slice") ErrBadCommand = ClientError("comand isn't text SQL nor *Stmt") ErrWrongDateLen = ClientError("wrong datetime/timestamp length") ErrWrongTimeLen = ClientError("wrong time length") ErrUnkMySQLType = ClientError("unknown MySQL type") ErrWrongParamNum = ClientError("wrong parameter number") ErrUnkDataType = ClientError("unknown data source type") ErrSmallPktSize = ClientError("specified packet size is to small") ErrReadAfterEOR = ClientError("previous ScanRow call returned io.EOF") ErrOldProtocol = ClientError("server does not support 4.1 protocol") ErrAuthentication = ClientError("authentication error") )
var New func(proto, laddr, raddr, user, passwd string, db ...string) Conn
New can be used to establish a connection. It is set by imported engine (see mymysql/native, mymysql/thrsafe)
Functions ¶
func DurationString ¶ added in v0.4.2
Convert time.Duration to string representation of mysql.TIME
func End ¶
Read all unreaded rows and discard them. This function is useful if you don't want to use the remaining rows. It has an impact only on current result. If there is multi result query, you must use NextResult method and read/discard all rows in this result, before use other method that sends data to the server. You can't use this function if last GetRow returned nil.
func Exec ¶
Calls Run and next call GetRow as long as it reads all rows from the result. Next it returns all readed rows as the slice of rows.
func ParseDuration ¶ added in v0.4.2
Parse duration from MySQL string format [+-]H+:MM:SS[.UUUUUUUUU]. Leading and trailing spaces are ignored. If format is invalid returns nil.
func ParseTime ¶ added in v0.4.2
Parses string datetime in TimeFormat using loc location. Converts MySQL zero to time.Time zero.
func Query ¶
Calls Start and next calls GetRow as long as it reads all rows from the result. Next it returns all readed rows as the slice of rows.
func QueryFirst ¶ added in v0.4.8
Calls Start and next calls GetFirstRow
func TimeString ¶ added in v0.4.2
Returns t as string in MySQL format Converts time.Time zero to MySQL zero.
Types ¶
type ClientError ¶ added in v1.1.1
type ClientError string
func (ClientError) Error ¶ added in v1.1.1
func (e ClientError) Error() string
type Conn ¶
type Conn interface { ConnCommon Clone() Conn SetTimeout(time.Duration) Connect() error NetConn() net.Conn SetDialer(Dialer) Close() error IsConnected() bool Reconnect() error Use(dbname string) error Register(sql string) SetMaxPktSize(new_size int) int NarrowTypeSet(narrow bool) FullFieldInfo(full bool) Begin() (Transaction, error) }
Conn represnts connection to the MySQL server. See mymysql/native for method documentation
func NewFromCF ¶ added in v0.4.9
Creates new conneection handler using configuration in cfgFile. Returns connection handler and map contains unknown options.
Config file format(example):
# mymysql options (if some option isn't specified it defaults to "") DbRaddr 127.0.0.1:3306 # DbRaddr /var/run/mysqld/mysqld.sock DbUser testuser DbPass TestPasswd9 # optional: DbName test # optional: DbEncd utf8 # optional: DbLaddr 127.0.0.1:0 # optional: DbTimeout 15s # Your options (returned in unk) MyOpt some text
type ConnCommon ¶
type ConnCommon interface { Start(sql string, params ...interface{}) (Result, error) Prepare(sql string) (Stmt, error) Ping() error ThreadId() uint32 Escape(txt string) string Query(sql string, params ...interface{}) ([]Row, Result, error) QueryFirst(sql string, params ...interface{}) (Row, Result, error) QueryLast(sql string, params ...interface{}) (Row, Result, error) }
ConCommon is a common interface to the connection. See mymysql/native for method documentation
type Date ¶
For MySQL DATE type
func ParseDate ¶ added in v0.4.2
Convert string date in format YYYY-MM-DD to Date. Leading and trailing spaces are ignored.
type Dialer ¶ added in v1.5.1
Dialer can be used to dial connections to MySQL. If Dialer returns (nil, nil) the hook is skipped and normal dialing proceeds.
type Error ¶
If a function/method returns error you may check the returned error type via a type assertion. If the type assertion succeeds you can retrieve the MySQL error code as below.
Example:
if val, ok := err.(*mysql.Error); ok { fmt.Println(val.Code) }
type Result ¶
type Result interface { StatusOnly() bool ScanRow(Row) error GetRow() (Row, error) MoreResults() bool NextResult() (Result, error) Fields() []*Field Map(string) int Message() string AffectedRows() uint64 InsertId() uint64 WarnCount() int MakeRow() Row GetRows() ([]Row, error) End() error GetFirstRow() (Row, error) GetLastRow() (Row, error) }
Result represents one MySQL result set. See mymysql/native for method documentation
type Row ¶
type Row []interface{}
Result row - contains values for any column of received row.
If row is a result of ordinary text query, its element can be []byte slice, contained result text or nil if NULL is returned.
If it is result of prepared statement execution, its element field can be: intX, uintX, floatX, []byte, Date, Time, time.Time (in Local location) or nil
func GetFirstRow ¶ added in v0.4.8
Returns first row and discard others
func GetLastRow ¶ added in v0.4.8
Returns last row and discard others
func GetRow ¶ added in v0.4.7
Calls r.MakeRow and next r.ScanRow. Doesn't return io.EOF error (returns nil row insted).
func (Row) BoolErr ¶
Get the nn-th value and return it as bool. Return error if conversion is impossible.
func (Row) DateErr ¶
Get the nn-th value and return it as Date (0000-00-00 if NULL). Return error if conversion is impossible.
func (Row) Duration ¶ added in v0.4.2
It is like DurationErr but panics if conversion is impossible.
func (Row) DurationErr ¶ added in v0.4.2
Get the nn-th value and return it as time.Duration (0 if NULL). Return error if conversion is impossible.
func (Row) Float ¶ added in v0.4.4
Get the nn-th value and return it as float64 (0 if NULL). Panic if conversion is impossible.
func (Row) FloatErr ¶ added in v0.4.4
Get the nn-th value and return it as float64 (0 if NULL). Return error if conversion is impossible.
func (Row) ForceBool ¶ added in v0.4.4
It is like BoolErr but return false if conversion is impossible.
func (Row) ForceDate ¶ added in v0.4.4
It is like DateErr but return 0000-00-00 if conversion is impossible.
func (Row) ForceDuration ¶ added in v0.4.4
It is like DurationErr but return 0 if conversion is impossible.
func (Row) ForceFloat ¶ added in v0.4.4
Get the nn-th value and return it as float64. Return 0 if value is NULL or if conversion is impossible.
func (Row) ForceInt ¶ added in v0.4.4
Get the nn-th value and return it as int. Return 0 if value is NULL or conversion is impossible.
func (Row) ForceInt64 ¶ added in v0.4.4
Get the nn-th value and return it as int64. Return 0 if value is NULL or conversion is impossible.
func (Row) ForceLocaltime ¶ added in v0.4.4
It is like LocaltimeErr but returns 0000-00-00 00:00:00 if conversion is impossible.
func (Row) ForceTime ¶ added in v0.4.4
It is like TimeErr but returns 0000-00-00 00:00:00 if conversion is impossible.
func (Row) ForceUint ¶ added in v0.4.4
Get the nn-th value and return it as uint. Return 0 if value is NULL or conversion is impossible.
func (Row) ForceUint64 ¶ added in v0.4.4
Get the nn-th value and return it as uint64. Return 0 if value is NULL or conversion is impossible.
func (Row) Int ¶
Get the nn-th value and return it as int (0 if NULL). Panic if conversion is impossible.
func (Row) Int64 ¶ added in v0.4.2
Get the nn-th value and return it as int64 (0 if NULL). Panic if conversion is impossible.
func (Row) Int64Err ¶ added in v0.4.2
Get the nn-th value and return it as int64 (0 if NULL). Return error if conversion is impossible.
func (Row) IntErr ¶
Get the nn-th value and return it as int (0 if NULL). Return error if conversion is impossible.
func (Row) LocaltimeErr ¶ added in v0.4.2
Get the nn-th value and return it as time.Time in Local location (zero if NULL). Returns error if conversion is impossible. It can convert Date to time.Time.
func (Row) TimeErr ¶
Get the nn-th value and return it as time.Time in loc location (zero if NULL) Returns error if conversion is impossible. It can convert Date to time.Time.
func (Row) Uint ¶
Get the nn-th value and return it as uint (0 if NULL). Panic if conversion is impossible.
func (Row) Uint64 ¶ added in v0.4.2
Get the nn-th value and return it as uint64 (0 if NULL). Panic if conversion is impossible.
type Stmt ¶
type Stmt interface { Bind(params ...interface{}) Run(params ...interface{}) (Result, error) Delete() error Reset() error SendLongData(pnum int, data interface{}, pkt_size int) error Fields() []*Field NumParam() int WarnCount() int Exec(params ...interface{}) ([]Row, Result, error) ExecFirst(params ...interface{}) (Row, Result, error) ExecLast(params ...interface{}) (Row, Result, error) }
Stmt represents MySQL prepared statement. See mymysql/native for method documentation
type Transaction ¶
type Transaction interface { ConnCommon Commit() error Rollback() error Do(st Stmt) Stmt IsValid() bool }
Transaction represents MySQL transaction See mymysql/native for method documentation