Documentation Source Text

Hex Artifact Content
Login

Artifact f90e13ad703f4bc5f7a8a5ea7bc6d5378855dd11:


0000: 3c 74 69 74 6c 65 3e 53 51 4c 69 74 65 20 49 73  <title>SQLite Is
0010: 20 54 72 61 6e 73 61 63 74 69 6f 6e 61 6c 3c 2f   Transactional</
0020: 74 69 74 6c 65 3e 0a 0a 3c 68 32 3e 53 51 4c 69  title>..<h2>SQLi
0030: 74 65 20 69 73 20 54 72 61 6e 73 61 63 74 69 6f  te is Transactio
0040: 6e 61 6c 3c 2f 68 32 3e 0a 0a 3c 70 3e 41 20 74  nal</h2>..<p>A t
0050: 72 61 6e 73 61 63 74 69 6f 6e 61 6c 20 64 61 74  ransactional dat
0060: 61 62 61 73 65 20 69 73 20 6f 6e 65 20 69 6e 20  abase is one in 
0070: 77 68 69 63 68 20 61 6c 6c 20 63 68 61 6e 67 65  which all change
0080: 73 20 61 6e 64 20 71 75 65 72 69 65 73 0a 61 70  s and queries.ap
0090: 70 65 61 72 20 74 6f 20 62 65 0a 41 74 6f 6d 69  pear to be.Atomi
00a0: 63 2c 20 43 6f 6e 73 69 73 74 65 6e 74 2c 20 49  c, Consistent, I
00b0: 73 6f 6c 61 74 65 64 2c 20 61 6e 64 20 44 75 72  solated, and Dur
00c0: 61 62 6c 65 0a 28 5b 68 74 74 70 3a 2f 2f 65 6e  able.([http://en
00d0: 2e 77 69 6b 69 70 65 64 69 61 2e 6f 72 67 2f 77  .wikipedia.org/w
00e0: 69 6b 69 2f 41 43 49 44 20 7c 20 41 43 49 44 5d  iki/ACID | ACID]
00f0: 29 2e 0a 53 51 4c 69 74 65 20 69 6d 70 6c 65 6d  )..SQLite implem
0100: 65 6e 74 73 20 0a 5b 68 74 74 70 3a 2f 2f 65 6e  ents .[http://en
0110: 2e 77 69 6b 69 70 65 64 69 61 2e 6f 72 67 2f 77  .wikipedia.org/w
0120: 69 6b 69 2f 53 65 72 69 61 6c 69 7a 61 62 69 6c  iki/Serializabil
0130: 69 74 79 20 7c 20 73 65 72 69 61 6c 69 7a 61 62  ity | serializab
0140: 6c 65 5d 0a 74 72 61 6e 73 61 63 74 69 6f 6e 73  le].transactions
0150: 20 74 68 61 74 20 61 72 65 20 61 74 6f 6d 69 63   that are atomic
0160: 2c 20 63 6f 6e 73 69 73 74 65 6e 74 2c 20 69 73  , consistent, is
0170: 6f 6c 61 74 65 64 2c 20 61 6e 64 20 64 75 72 61  olated, and dura
0180: 62 6c 65 2c 0a 65 76 65 6e 20 69 66 20 74 68 65  ble,.even if the
0190: 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 69 73 20   transaction is 
01a0: 69 6e 74 65 72 72 75 70 74 65 64 20 62 79 20 61  interrupted by a
01b0: 20 70 72 6f 67 72 61 6d 20 63 72 61 73 68 2c 20   program crash, 
01c0: 61 6e 0a 6f 70 65 72 61 74 69 6e 67 20 73 79 73  an.operating sys
01d0: 74 65 6d 20 63 72 61 73 68 2c 20 6f 72 20 61 20  tem crash, or a 
01e0: 70 6f 77 65 72 20 66 61 69 6c 75 72 65 20 74 6f  power failure to
01f0: 20 74 68 65 20 63 6f 6d 70 75 74 65 72 2e 0a 3c   the computer..<
0200: 2f 70 3e 0a 0a 3c 70 3e 0a 57 65 20 68 65 72 65  /p>..<p>.We here
0210: 20 72 65 73 74 61 74 65 20 61 6e 64 20 61 6d 70   restate and amp
0220: 6c 69 66 79 20 74 68 65 20 70 72 65 76 69 6f 75  lify the previou
0230: 73 20 73 65 6e 74 65 6e 63 65 20 66 6f 72 20 65  s sentence for e
0240: 6d 70 68 61 73 69 73 3a 0a 41 6c 6c 20 63 68 61  mphasis:.All cha
0250: 6e 67 65 73 20 77 69 74 68 69 6e 20 61 20 73 69  nges within a si
0260: 6e 67 6c 65 20 74 72 61 6e 73 61 63 74 69 6f 6e  ngle transaction
0270: 20 69 6e 20 53 51 4c 69 74 65 20 65 69 74 68 65   in SQLite eithe
0280: 72 20 6f 63 63 75 72 0a 63 6f 6d 70 6c 65 74 65  r occur.complete
0290: 6c 79 20 6f 72 20 6e 6f 74 20 61 74 20 61 6c 6c  ly or not at all
02a0: 2c 20 65 76 65 6e 20 69 66 20 74 68 65 20 61 63  , even if the ac
02b0: 74 20 6f 66 20 77 72 69 74 69 6e 67 20 74 68 65  t of writing the
02c0: 20 63 68 61 6e 67 65 0a 6f 75 74 20 74 6f 20 74   change.out to t
02d0: 68 65 20 64 69 73 6b 20 69 73 20 69 6e 74 65 72  he disk is inter
02e0: 72 75 70 74 65 64 20 62 79 0a 3c 75 6c 3e 0a 3c  rupted by.<ul>.<
02f0: 6c 69 3e 61 20 70 72 6f 67 72 61 6d 20 63 72 61  li>a program cra
0300: 73 68 2c 3c 2f 6c 69 3e 0a 3c 6c 69 3e 61 6e 20  sh,</li>.<li>an 
0310: 6f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65 6d  operating system
0320: 20 63 72 61 73 68 2c 20 6f 72 3c 2f 6c 69 3e 0a   crash, or</li>.
0330: 3c 6c 69 3e 61 20 70 6f 77 65 72 20 66 61 69 6c  <li>a power fail
0340: 75 72 65 2e 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a  ure.</li>.</ul>.
0350: 3c 70 3e 0a 0a 3c 70 3e 0a 54 68 65 20 63 6c 61  <p>..<p>.The cla
0360: 69 6d 20 6f 66 20 74 68 65 20 70 72 65 76 69 6f  im of the previo
0370: 75 73 20 70 61 72 61 67 72 61 70 68 20 69 73 20  us paragraph is 
0380: 65 78 74 65 6e 73 69 76 65 6c 79 20 63 68 65 63  extensively chec
0390: 6b 65 64 20 69 6e 20 74 68 65 0a 53 51 4c 69 74  ked in the.SQLit
03a0: 65 20 72 65 67 72 65 73 73 69 6f 6e 20 74 65 73  e regression tes
03b0: 74 20 73 75 69 74 65 20 75 73 69 6e 67 20 61 20  t suite using a 
03c0: 73 70 65 63 69 61 6c 20 74 65 73 74 20 68 61 72  special test har
03d0: 6e 65 73 73 20 74 68 61 74 20 0a 73 69 6d 75 6c  ness that .simul
03e0: 61 74 65 73 20 74 68 65 20 65 66 66 65 63 74 73  ates the effects
03f0: 20 6f 6e 20 61 20 64 61 74 61 62 61 73 65 20 66   on a database f
0400: 69 6c 65 20 6f 66 20 6f 70 65 72 61 74 69 6e 67  ile of operating
0410: 20 73 79 73 74 65 6d 20 63 72 61 73 68 65 73 20   system crashes 
0420: 0a 61 6e 64 20 70 6f 77 65 72 20 66 61 69 6c 75  .and power failu
0430: 72 65 73 2e 0a 3c 2f 70 3e 0a 0a 3c 70 3e 0a 3c  res..</p>..<p>.<
0440: 61 20 68 72 65 66 3d 22 61 74 6f 6d 69 63 63 6f  a href="atomicco
0450: 6d 6d 69 74 2e 68 74 6d 6c 22 3e 41 64 64 69 74  mmit.html">Addit
0460: 69 6f 6e 61 6c 20 69 6e 66 6f 72 6d 61 74 6f 6e  ional informaton
0470: 3c 2f 61 3e 0a 3c 2f 70 3e 0a                    </a>.</p>.