-
Notifications
You must be signed in to change notification settings - Fork 263
/
Copy pathmysql_autocommit.3
73 lines (68 loc) · 2.04 KB
/
mysql_autocommit.3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
.\" Automatically generated by Pandoc 3.5
.\"
.TH "mysql_autocommit" "3" "" "Version 3.4" "MariaDB Connector/C"
.SS Name
mysql_autocommit \- Toggles autocommit mode
.SS Synopsis
.IP
.EX
#include \f[B]<mysql.h>\f[R]
my_bool mysql_autocommit(MYSQL * mysql, my_bool auto_mode);
.EE
.SS Description
Toggles autocommit mode on or off for the current database connection.
Autocommit mode will be set if mode=1 or unset if mode=0.
.SS Parameters:
.IP \[bu] 2
\f[CR]mysql\f[R] is a connection identifier, which was previously
allocated by \f[B]mysql_init(3)\f[R] and connected by
\f[B]mysql_real_connect(3)\f[R].
.IP \[bu] 2
\f[CR]auto_mode\f[R] \- whether to turn autocommit on or not.
.SS Notes
.IP \[bu] 2
Autocommit mode only affects operations on transactional table types.
To determine the current state of autocommit mode use the SQL command
\f[CR]SELECT \[at]\[at]autocommit\f[R] or check the server status (see
example below).
.IP \[bu] 2
Be aware: the [mysql_rollback()}(mysql_rollback() function will not work
if autocommit mode is switched on.
.SS Examples
.SS SQL
.IP
.EX
# Turn \f[B]off\f[R] autocommit
\f[B]SET\f[R] AUTOCOMMIT=0;
# Retrieve autocommit
\f[B]SELECT\f[R] \[at]\[at]autocommit;
+\f[I]\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\f[R]
| \[at]\[at]autocommit |
+\f[I]\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\f[R]
| 0 |
+\f[I]\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\f[R]
.EE
.SS MariaDB Connector/C
.IP
.EX
static int test_autocommit(MYSQL *mysql)
{
int rc;
unsigned int server_status;
\f[I]/* Turn autocommit off */\f[R]
rc= mysql_autocommit(mysql, 0);
\f[B]if\f[R] (rc)
\f[B]return\f[R] rc; \f[I]/* Error */\f[R]
\f[I]/* If autocommit = 0 succeeded, the last OK packet updated the server status */\f[R]
rc= mariadb_get_infov(mysql, MARIADB_CONNECTION_SERVER_STATUS, &server_status);
\f[B]if\f[R] (rc)
\f[B]return\f[R] rc; \f[I]/* Error */\f[R]
\f[B]if\f[R] (server_status & SERVER_STATUS_AUTOCOMMIT)
{
printf(\[dq]Error: autocommit is on\[rs]n\[dq]);
\f[B]return\f[R] 1;
}
printf(\[dq]OK: autocommit is off\[rs]n\[dq]);
\f[B]return\f[R] 0;
}
.EE